Обзор контейнера IoC Spring, метаданные конфигурации

Контейнер Spring IoC использует форму метаданных конфигурации. Эти метаданные конфигурации показывают, как вы, как разработчик приложения, указываете контейнеру Spring создавать экземпляры, настраивать и собирать объекты в вашем приложении.

Метаданные конфигурации традиционно предоставляются в простом и интуитивно понятном формате XML, который используется в большей части этой главы для передачи ключевых концепций и функций контейнера IoC Spring.

Метаданные на основе XML - не единственная разрешенная форма метаданных конфигурации. Сам контейнер Spring IoC полностью отделен от формата, в котором эти метаданные конфигурации фактически записаны. В наши дни многие разработчики выбирают конфигурацию на основе Java для своих приложений Spring.

Использование других форм метаданных с контейнером Spring:

  • Конфигурация на основе аннотаций: в Spring 2.5 появилась поддержка метаданных конфигурации на основе аннотаций.
  • Конфигурация на основе Java. Начиная с Spring 3.0, многие функции, предоставляемые проектом SpringConfig, стали частью ядра Spring Framework. Таким образом, вы можете определять bean-компоненты, внешние по отношению к классам вашего приложения, используя Java, а не файлы XML. (Аннотации @Configuration, @Bean, @Import и @DependsOn.)

Конфигурация Spring состоит по крайней мере из одного и, как правило, из нескольких определений бинов, которыми должен управлять контейнер. Метаданные конфигурации на основе XML настраивают эти компоненты как элементы <bean/> внутри элемента <bean/> верхнего уровня. Конфигурация Java обычно использует аннотированные методы @Bean в классе @Configuration.

Эти определения бинов соответствуют фактическим объектам, составляющим ваше приложение. Как правило, вы определяете объекты уровня обслуживания, объекты доступа к данным (DAO), объекты представления, такие как экземпляры Struts Action, объекты инфраструктуры, такие как Hibernate SessionFactories, JMS Queues и т. д. Как правило, в контейнере не настраиваются детализированные доменные объекты, поскольку DAO и бизнес-логика обычно отвечают за создание и загрузку доменных объектов. Однако вы можете использовать интеграцию Spring с AspectJ для настройки объектов, которые были созданы вне контроля контейнера IoC.

В следующем примере показана базовая структура метаданных конфигурации на основе XML:

<?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
        https://www.springframework.org/schema/beans/spring-beans.xsd">

    <bean id="..." class="..."> // 1 2
        <!-- соавторы и конфигурация для этого компонента находятся здесь -->
    </bean>

    <bean id="..." class="...">
        <!-- соавторы и конфигурация для этого компонента находятся здесь -->
    </bean>

    <!-- еще определения bean далее -->

</beans>

1 - Атрибут id - это строка, которая идентифицирует определение отдельного компонента.

2 - Атрибут class определяет тип компонента и использует полностью квалифицированный classname.

Значение атрибута id относится к взаимодействующим объектам. XML для ссылки на взаимодействующие объекты в этом примере не показан.


Читайте также:


Комментарии

Популярные сообщения из этого блога

Методы класса Object в Java

Как получить текущий timestamp в Java

Основные опции JVM для повышения производительности и отладки