Весна - определение фасоли

Объекты, образующие основу вашего приложения и управляемые контейнером 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 с аннотациями.