Spring IoC контейнер: зависимости, использование depends-on

Если компонент является зависимостью от другого компонента, это обычно означает, что один компонент устанавливается как свойство другого компонента. Обычно это выполняется с помощью элемента <ref/> в метаданных конфигурации на основе XML. Однако иногда зависимости между bean-компонентами менее прямые. Примером может служить запуск статического инициализатора в классе, например, для регистрации драйвера базы данных. Атрибут depends-on может явно принудительно инициализировать один или несколько bean-компонентов перед инициализацией bean-компонента, использующего этот элемент. В следующем примере используется атрибут depends-on, чтобы выразить зависимость от одного компонента:

<bean id="beanOne" class="ExampleBean" depends-on="manager"/>
<bean id="manager" class="ManagerBean" />

Чтобы выразить зависимость от нескольких bean-компонентов, укажите список имен bean-компонентов в качестве значения атрибута depends-on (запятые, пробелы и точки с запятой являются допустимыми разделителями):

<bean id="beanOne" class="ExampleBean" depends-on="manager,accountDao">
    <property name="manager" ref="manager" />
</bean>

<bean id="manager" class="ManagerBean" />
<bean id="accountDao" class="x.y.jdbc.JdbcAccountDao" />

Атрибут depends-on может указывать как зависимость времени инициализации, так и, в случае только одноэлементных компонентов, соответствующую зависимость времени уничтожения. Зависимые bean-компоненты, которые определяют отношения зависимости с данным bean-компонентом, уничтожаются в первую очередь до уничтожения самого bean-компонента. Таким образом, зависимость может также контролировать порядок выключения.


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


Комментарии

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

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

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

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