spring bean声明中的ref vs idref属性

时间:2009-11-20 01:49:27

标签: spring

有人可以告诉我

之间的区别
<bean id="b1" class="" />

<bean id="" class="">
 <property name="b1" ref="b1" />
</bean>

<bean id="" class="">
 <property name="b1" idref="b1" />
</bean>

什么时候必须使用?

4 个答案:

答案 0 :(得分:12)

这是一个更详细的例子,假设你有两个豆A和B:

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

<bean class="B"/>
    <constructor-arg>
        <ref bean="a"/>
        <idref bean="a"/>
    </constructor-arg>
</bean>

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

public B(A a, String string) {
     string.equals("a"); //true
}

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

答案 1 :(得分:9)

  

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

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

答案 2 :(得分:2)

idref必须指向一个真正的bean。格式应为<idref bean=""/>

答案 3 :(得分:1)

id用于创建Class的实例,idref用于指向bean的名称