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-компонента. Таким образом, зависимость может также контролировать порядок выключения.
Читайте также:
- Spring IoC контейнер: зависимости и конфигурация в деталях, элемент idref
- Spring IoC контейнер: зависимости и конфигурация в деталях, ярлык XML с пространством имен p
- Spring IoC контейнер: зависимости и конфигурация в деталях, прямые значения
Комментарии
Отправить комментарий