对于最新的稳定版本,请使用 Spring Framework 6.2.10! |
用depends-on
但是,有时 bean 之间的依赖关系不太直接。一个例子是当需要触发类中的静态初始值设定项时,例如用于数据库驱动程序注册。 这depends-on
属性或@DependsOn
注释可以显式强制一个或多个 bean在初始化使用此元素的 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" />
这depends-on 属性可以指定初始化时依赖项和仅在单例 Bean 的情况下,相应的销毁时依赖项。定义depends-on 与给定 bean 的关系首先被销毁,然后给定 bean本身被销毁。 因此depends-on 还可以控制关机顺序。 |