Мы продолжаем наш цикл туториалов по Spring Framework, и сегодня речь пойдёт о сущности под названием Bean (бин).
Бины – это объекты, которые являются основой приложения и управляются Spring IoC контейнером. Эти объекты создаются с помощью конфигурационных метаданных, которые указываются в контейнере (например, XML- <bean>…</bean>). Я уже говорил о них в предыдущих главах.
Определение бина содержит метаданные конфигурации, которые необходимы управляющему контейнеру для получения следующей информации:
- Как создать бин;
- Информацию о жизненном цикле бина;
- Зависимости бина.
В Spring Framework существуют такие свойства, определяющие бины:
class
Этот атрибут является обязательным и указывает конкретный класс Java-приложения, который будет использоваться для создания бина.
name
Уникальный идентификатор бина. В случае конфигурации с помощью xml-файла, вы можете использовать свойство “id” и/или “name” для идентификации бина.
scope
Это свойство определяет область видимости создаваемых объектов. (Прим. Отсутствие в русском языке достойного перевода этого свойства бинов могут вызвать затруднения, но более подробно оно будет рассмотрено далее).
constructor-arg
Определяет конструктор, использующийся для внедрения зависимости. Более подробно – далее.
properties
Определяет свойства внедрения зависимости. Более подробно рассмотрим далее.
initialization method
Здесь определяется метод инициализации бина
destruction method
Метод уничтожения бина, который будет использоваться при уничтожении контейнера, содержащего бин.
autowiring mode
Определяет режим автоматического связывания при внедрении зависимости. Более подробно рассмотрим далее.
lazy-initialization mode
Режим ленивой инициализации даёт контейнеру IoC команду создавать экземпляр бина при первом запросе, а не при запуске приложения.
Контейнер IoC не зависит от формата, в котором передаются метаданные. Существует 3 основных метода передачи метаданных контейнеру Spring IoC:
- Конфигурационный XML-файл
- Конфигурация на основе аннотаций
- Конфигурация на основе Java
Ранее мы уже рассматривали как передаются метаданные на основе XML-файла. Теперь давайте рассмотрим пример XML-файла с различными свойствами
xml-config.xml
Конфигурирование бинов с помощью аннотаций мы рассмотрим позже в отдельной главе.