Руководство по Spring. Введение в Bean-ы.

Мы продолжаем наш цикл туториалов по 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

xml-config

Конфигурирование бинов с помощью аннотаций мы рассмотрим позже в отдельной главе.