Spring

depends-onbean标签的属性之一,表示一个bean对其他bean的依赖关系。乍一想,不是有ref吗?其实还是有区别的,<ref/>标签是一个bean对其他bean的引用,而depends-on属性只是表明依赖关系(不一定会引用),这个依赖关系决定了被依赖的bean必定会在依赖bean之前被实例化,反过来,容器关闭时,依赖bean会在被依赖的bean之前被销毁。

示例如下:

<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" />

manageraccoutDao会先于beanOne被实例化,会慢于beanOne被销毁,而beanOne不引用accountDao(或者说beanOne不会将accountDao注入到自己的属性中)。这就是depends-on的主要作用。

原文地址:https://www.cnblogs.com/ViviChan/p/4981518.html