Объекты, которые образуют основу вашего приложения и управляются контейнером Spring IoC, называются bean-компонентами . Бин — это объект, который создается, собирается и иным образом управляется контейнером Spring IoC. Эти компоненты создаются с помощью метаданных конфигурации, которые вы предоставляете контейнеру. Например, в форме определений XML <bean />, которые вы уже видели в предыдущих главах.
Определение компонента содержит информацию, называемую метаданными конфигурации , которая необходима контейнеру, чтобы знать следующее:
- Как создать боб
- Подробности жизненного цикла Бина
- Зависимости Бина
Все приведенные выше метаданные конфигурации преобразуются в набор следующих свойств, которые составляют каждое определение компонента.
Sr.No. | Свойства и описание |
---|---|
1 |
учебный класс Этот атрибут является обязательным и определяет класс компонента, который будет использоваться для создания компонента. |
2 |
название Этот атрибут уникальным образом определяет идентификатор компонента. В метаданных конфигурации на основе XML вы используете атрибуты id и / или name для указания идентификатора (ов) компонента. |
3 |
объем Этот атрибут задает область действия объектов, созданных из определенного определения компонента, и он будет обсуждаться в главе об областях применения компонента. |
4 |
Конструктор-Arg Это используется для внедрения зависимостей и будет обсуждаться в последующих главах. |
5 |
свойства Это используется для внедрения зависимостей и будет обсуждаться в последующих главах. |
6 |
режим автопроводки Это используется для внедрения зависимостей и будет обсуждаться в последующих главах. |
7 |
режим ленивой инициализации Инициализированный ленивый bean-компонент сообщает контейнеру IoC о создании экземпляра bean-компонента при первом запросе, а не при запуске. |
8 |
метод инициализации Обратный вызов, вызываемый сразу после того, как контейнер установил все необходимые свойства в bean-компоненте. Это будет обсуждаться в главе о жизненном цикле бобов. |
9 |
метод уничтожения Обратный вызов, который нужно использовать, когда контейнер, содержащий бин, уничтожен. Это будет обсуждаться в главе о жизненном цикле бобов. |
учебный класс
Этот атрибут является обязательным и определяет класс компонента, который будет использоваться для создания компонента.
название
Этот атрибут уникальным образом определяет идентификатор компонента. В метаданных конфигурации на основе XML вы используете атрибуты id и / или name для указания идентификатора (ов) компонента.
объем
Этот атрибут задает область действия объектов, созданных из определенного определения компонента, и он будет обсуждаться в главе об областях применения компонента.
Конструктор-Arg
Это используется для внедрения зависимостей и будет обсуждаться в последующих главах.
свойства
Это используется для внедрения зависимостей и будет обсуждаться в последующих главах.
режим автопроводки
Это используется для внедрения зависимостей и будет обсуждаться в последующих главах.
режим ленивой инициализации
Инициализированный ленивый bean-компонент сообщает контейнеру IoC о создании экземпляра bean-компонента при первом запросе, а не при запуске.
метод инициализации
Обратный вызов, вызываемый сразу после того, как контейнер установил все необходимые свойства в bean-компоненте. Это будет обсуждаться в главе о жизненном цикле бобов.
метод уничтожения
Обратный вызов, который нужно использовать, когда контейнер, содержащий бин, уничтожен. Это будет обсуждаться в главе о жизненном цикле бобов.
Метаданные конфигурации Spring
Контейнер Spring IoC полностью отделен от формата, в котором эти метаданные конфигурации фактически записаны. Ниже приведены три важных метода предоставления метаданных конфигурации в Spring-контейнер.
- XML-файл конфигурации.
- Конфигурация на основе аннотаций
- Конфигурация на основе Java
Вы уже видели, как метаданные конфигурации на основе XML предоставляются контейнеру, но давайте рассмотрим другой пример файла конфигурации на основе XML с различными определениями bean-компонентов, включая отложенную инициализацию, метод инициализации и метод уничтожения —
<?xml version = "1.0" encoding = "UTF-8"?> <beans xmlns = "http://www.springframework.org/schema/beans" xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation = "http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"> <!-- A simple bean definition --> <bean id = "..." class = "..."> <!-- collaborators and configuration for this bean go here --> </bean> <!-- A bean definition with lazy init set on --> <bean id = "..." class = "..." lazy-init = "true"> <!-- collaborators and configuration for this bean go here --> </bean> <!-- A bean definition with initialization method --> <bean id = "..." class = "..." init-method = "..."> <!-- collaborators and configuration for this bean go here --> </bean> <!-- A bean definition with destruction method --> <bean id = "..." class = "..." destroy-method = "..."> <!-- collaborators and configuration for this bean go here --> </bean> <!-- more bean definitions go here --> </beans>
Вы можете проверить Spring Hello World Example, чтобы понять, как определять, настраивать и создавать Spring Beans.
Мы обсудим конфигурацию на основе аннотаций в отдельной главе. Это намеренно обсуждается в отдельной главе, так как мы хотим, чтобы вы поняли несколько других важных концепций Spring, прежде чем начинать программировать с Spring Dependency Injection с аннотациями.