Spring bean idref的用例是什么?

时间:2014-12-10 13:26:27

标签: spring ioc-container idref

我知道idref用于传递bean的id(即String值但不是引用)。我在接受采访时被问到,idref的用例是什么?为何以及何时应该使用它?

1 个答案:

答案 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时才会发现错误。因此,我们永远无法知道开发人员在实例化阶段是否注入过任何拼写错误。

注意: 这只是一种推荐方法,而不是强制性方法