Как мы уже видели, определение бина может содержать множество различных конфигураций (конструктор, методы инициализации и уничтожения и т.д.).
Наследованием (когда мы говорим о бинах) называется ситуация, когда “бин-потомок” перенимает (наследует) конфигурационные данные от своего “бина-родителя”. Бин-наследник может переопределять (override) некоторые унаследованные свойства и добавлять свои собственные, если это потребуется.
При этом важно учитывать тот факт, что наследование бинов в Spring не имеет ничего общего с наследованием классов в Java. Сам принцип наследование, тем не менее, остаётся тем же.
Другими словами, Вы можете определить некий шаблонный бин и, наследуюясь от него, добавлять необходимый функционал в “бины-потомки”.
Когда мы конфигурируем приложение с помощью XML файлов, мы используем свойство “parent”, указывая, при этом, “бин-родитель”.
Всё это будет намного проще понять, посмотрев небольшой пример с использованием наследования бинов.
Пример приложения:
Исходный код проекта можно скачать по ЭТОЙ ССЫЛКЕ.
Структура проекта
Класс Message.java
Класс MessageToYou.java
Класс MessageInheritanceRunner.java
Конфигурационный файл inheritance-message-config.xml
Результат работы программы
Сегодня мы ознакомились с основами наследования бинов в Spring.