Подтвердить что ты не робот

Ref vs idref в объявлении spring bean

Может ли кто-нибудь сказать мне разницу между

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

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

и

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

и какой из них нужно использовать, когда?

4b9b3361

Ответ 1

ref используется для передачи bean, на который ссылается ref.
idref используется для передачи имени bean (как String), на которое ссылается.

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

Ответ 2

Вот несколько более подробный пример, предположим, что у вас есть два beans 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

Ответ 3

idref должен указывать на реальный bean. и формат должен быть <idref bean=""/>

Ответ 4

id используется для создания экземпляра класса, idref используется для указания на имя bean