弹簧。如何将相同的属性添加到多个bean?

时间:2017-04-17 11:59:43

标签: java spring

考虑我在beans.xml中有这样的东西:

<bean id="emails" class="org.some.package.SomeClass">
  <property name="emailList">
  <list>
    <value>pechorin@hero.org</value>
    <value>raskolnikov@slums.org</value>
    <value>stavrogin@gov.org</value>
    <value>porfiry@gov.org</value>
  </list>
</property>
</bean>

但我需要将emailList属性添加到多个bean中。如果不为每个bean写属性,我怎么能这样做呢?可以外化属性并将其注入每个bean吗?

我期待的是:

<property name="commonProp">
  <list>
    <value>pechorin@hero.org</value>
    <value>raskolnikov@slums.org</value>
    <value>stavrogin@gov.org</value>
    <value>porfiry@gov.org</value>
  </list>
</property>

<bean id="emailsOne" class="org.some.package.ClassOne">
  <property name="emailList" ref="commonProp" />
</bean>

<bean id="emailsTwo" class="org.some.package.ClassTwo">
  <property name="emailList" ref="commonProp" />
</bean>

1 个答案:

答案 0 :(得分:3)

您可以使用以下方式执行此操作: util:list

   <util:list id="myList" value-type="java.lang.String"> 
      <value>foo</value> 
      <value>bar</value> 
   </util:list>

然后在其他bean中使用此 myList 引用。