Spring中的ref vs依赖属性

use*_*415 19 java spring

我在Spring中的ref和依赖属性之间感到困惑.我阅读了spring doc但我仍然感到困惑.我想知道两者之间的确切区别,在这种情况下应该使用哪一个.

Lyj*_*son 12

另外, http://docs.spring.io/spring/docs/3.2.x/javadoc-api/org/springframework/context/annotation/DependsOn.html

取决于 - >当前bean所依赖的Bean.指定的任何bean都保证在此bean之前由容器创建.在bean没有通过属性或构造函数参数显式依赖另一个bean的情况下很少使用,而是依赖于另一个bean初始化的副作用.

在上面提供的答案中,以下陈述是错误的,

"在依赖于'依赖'属性中定义的从属bean将在相关bean被销毁之前被销毁"

首先销毁主bean,然后销毁依赖bean.

这是我的测试结果,

主要类的毁灭被称为.

称为依赖的毁灭.


Spi*_*ina 5

也许需要依赖的情况的示例会有所帮助。我使用 Spring 加载和连接我的 bean。这是一个示例 bean 定义:

<bean id="myBean" class="my.package.Class">
    <property name="destination" value="bean:otherBeanId?method=doSomething"/>
</bean>

<bean id="otherBeanId" class="my.package.OtherClass"/>
Run Code Online (Sandbox Code Playgroud)

请注意,属性值是一个字符串,它引用otherBeanId。由于此变量的解析方式,Spring 不会了解依赖项,因此它可能会先破坏otherBeanId ,然后再破坏myBean。这可能会使myBean处于损坏状态一段时间。

我可以使用依赖来解决这个问题,如下所示:

<bean id="myBean" class="my.package.Class" depends-on="otherBeanId">
    <property name="destination" value="bean:otherBeanId?method=doSomething"/>
</bean>
Run Code Online (Sandbox Code Playgroud)