Ответ 1
ref
используется для передачи bean, на который ссылается ref.idref
используется для передачи имени bean (какString
), на которое ссылается.
Может ли кто-нибудь сказать мне разницу между
<bean id="b1" class="" />
<bean id="" class="">
<property name="b1" ref="b1" />
</bean>
и
<bean id="" class="">
<property name="b1" idref="b1" />
</bean>
и какой из них нужно использовать, когда?
ref
используется для передачи bean, на который ссылается ref.idref
используется для передачи имени bean (какString
), на которое ссылается.
Вот несколько более подробный пример, предположим, что у вас есть два 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
idref
должен указывать на реальный bean. и формат должен быть <idref bean=""/>
id используется для создания экземпляра класса, idref используется для указания на имя bean