Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java ref vs取决于Spring中的属性_Java_Spring - Fatal编程技术网

Java ref vs取决于Spring中的属性

Java ref vs取决于Spring中的属性,java,spring,Java,Spring,我对Spring中的ref和dependent属性感到困惑。我阅读了Spring文档,但仍然感到困惑。我想知道两者之间的确切区别,以及在何种情况下应使用哪一种属性。来自官方文档: 当前bean所依赖的bean。指定的任何bean都保证由容器在该bean之前创建。在bean不通过属性或构造函数参数显式依赖于另一个bean,而是依赖于另一个bean初始化的副作用的情况下很少使用 也许一个需要依赖的情况的例子会有所帮助。我用弹簧把豆子装上电线。下面是一个示例bean定义: <bean id="m

我对Spring中的ref和dependent属性感到困惑。我阅读了Spring文档,但仍然感到困惑。我想知道两者之间的确切区别,以及在何种情况下应使用哪一种属性。

来自官方文档:

当前bean所依赖的bean。指定的任何bean都保证由容器在该bean之前创建。在bean不通过属性或构造函数参数显式依赖于另一个bean,而是依赖于另一个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"/>

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

我可以使用dependens-on解决此问题,如下所示:

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

可能存在这样一种情况:一个bean可能是另一个bean中的属性,即;属性bean作为属性直接参与bean定义,在这种情况下,我们使用
ref
属性引用bean


在一个bean实例化中,可能需要成功创建另一个bean,而另一个bean不是定义中的bean的属性,在这种情况下,我们使用
depends
属性