spring bean声明中的ref vs idref属性

nov*_*ice 13 spring

有人可以告诉我两者之间的区别

<bean id="b1" class="" />

<bean id="" class="">
 <property name="b1" ref="b1" />
</bean>
Run Code Online (Sandbox Code Playgroud)

<bean id="" class="">
 <property name="b1" idref="b1" />
</bean>
Run Code Online (Sandbox Code Playgroud)

什么时候必须使用?

lan*_*oxx 12

这是一个更冗长的例子,假设你有两个bean A和B:

<bean class="A" id="a" />

<bean class="B"/>
    <constructor-arg>
        <ref bean="a"/>
        <idref bean="a"/>
    </constructor-arg>
</bean>
Run Code Online (Sandbox Code Playgroud)

在这种情况下,B将有一个如下所示的构造函数:

public B(A a, String string) {
     string.equals("a"); //true
}
Run Code Online (Sandbox Code Playgroud)

因此,使用ref,您可以引用一个对象,并使用idref,您只需引用该bean的名称


Kal*_*see 9

ref用于传递ref引用的bean.
idref用于传递所String引用的bean的名称(作为a ).

http://forum.springsource.org/showthread.php?t=74355