Весна - определение фасоли
Объекты, образующие основу вашего приложения и управляемые контейнером Spring IoC, называются beans. Компонент - это объект, который создается, собирается и иным образом управляется контейнером Spring IoC. Эти bean-компоненты создаются с использованием метаданных конфигурации, которые вы предоставляете контейнеру. Например, в виде определений XML <bean />, которые вы уже видели в предыдущих главах.
Определение компонента содержит информацию, называемую configuration metadata, который необходим для того, чтобы контейнер знал следующее:
- Как создать боб
- Детали жизненного цикла бина
- Зависимости бина
Все приведенные выше метаданные конфигурации переводятся в набор следующих свойств, составляющих определение каждого компонента.
Sr.No. | Свойства и описание |
---|---|
1 | class Этот атрибут является обязательным и определяет класс компонента, который будет использоваться для создания компонента. |
2 | name Этот атрибут однозначно определяет идентификатор компонента. В метаданных конфигурации на основе XML вы используете атрибуты id и / или name для указания идентификатора (ов) bean-компонента. |
3 | scope Этот атрибут определяет область действия объектов, созданных из определения конкретного компонента, и он будет обсуждаться в главе, посвященной области действия компонента. |
4 | constructor-arg Это используется для внедрения зависимостей и будет обсуждаться в следующих главах. |
5 | properties Это используется для внедрения зависимостей и будет обсуждаться в следующих главах. |
6 | autowiring mode Это используется для внедрения зависимостей и будет обсуждаться в следующих главах. |
7 | lazy-initialization mode Ленивый инициализированный компонент сообщает контейнеру IoC создать экземпляр компонента при первом запросе, а не при запуске. |
8 | initialization method Обратный вызов, который вызывается сразу после того, как все необходимые свойства компонента были установлены контейнером. Это будет обсуждаться в главе о жизненном цикле бина. |
9 | destruction method Обратный вызов, который будет использоваться при уничтожении контейнера, содержащего компонент. Это будет обсуждаться в главе о жизненном цикле бина. |
Метаданные конфигурации 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, чтобы понять, как определять, настраивать и создавать Spring Beans.
Мы обсудим конфигурацию на основе аннотаций в отдельной главе. Это намеренно обсуждается в отдельной главе, так как мы хотим, чтобы вы усвоили несколько других важных концепций Spring, прежде чем начинать программировать с помощью Spring Dependency Injection с аннотациями.