6.4.3 depends-on的使用
如果bean是另一个bean的依赖项,常常意味着将一个bean设置为另一个bean的属性。 典型地,你可以使用基于XML的配置元数据中的<ref />元素来完成此操作。但是,有时bean之间的依赖关系不那么直接;例如,需要触发类中的静态初始化程序,像数据库驱动程序的注册。在初始化使用此元素的bean之前,depends-on属性可以显式强制初始化一个或多个bean。以下示例使用depends-on属性表示对单个bean的依赖关系:
<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" />
注意:bean定义中的depends-on属性既可以指定初始化时间上的依赖关系,也可以指定仅在单例bean的这种情况下,bean在相应销毁时间上的依赖关系。 在给定的bean本身被销毁之前,先销毁定义与给定bean具有depends-on关系的从属bean。因此,依赖也可以控制销毁顺序。