我知道idref
用于传递bean的id(即String值但不是引用)。我在接受采访时被问到,idref
的用例是什么?为何以及何时应该使用它?
答案 0 :(得分:1)
idref
只是通过在部署时验证引用的命名bean实际存在来添加一层安全性。
A very nice example with appropriate explanation is provided in this link
示例强>
<bean id="abc" class="..."/>
<bean id="xyz" class="...">
<property name="abcName">
<idref bean="abc" />
</property>
</bean>
也可以写成
<bean id="abc" class="..." />
<bean id="xyz" class="...">
<property name="abcName" value="abc" />
</bean>
已经描述了使用第一种方式的优势。
如果使用第二种方法,则不会对传递给abcName
bean的xyz
属性的值执行验证,即在加载上下文期间。
只有在实例化xyz
bean时才会发现错误。因此,我们永远无法知道开发人员在实例化阶段是否注入过任何拼写错误。
注意: 这只是一种推荐方法,而不是强制性方法