0

我知道这idref是用来传递 bean 的 id(即字符串值但不是引用)。我在一次采访中被问到,它的用例可以是什么idref?为什么以及何时应该使用它?

4

1 回答 1

1

idref只需通过在部署时验证所引用的命名 bean 实际存在来增加一层安全性。

此链接中提供了一个带有适当解释的非常好的示例

例子

<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>

已经描述了使用第一种方式的优点。

如果您使用第二种方法,则不会对传递给beanabcName属性的值执行验证,xyz即在加载上下文期间。

xyz只有在实例化 bean时才会发现错误。因此,我们永远无法知道开发人员在实例化阶段是否注入了任何拼写错误。

注意: 这只是推荐的方法,不是强制性的方法

于 2014-12-10T13:32:56.293 回答