Spring How to add the same property to multiple beans?

I have something like this in 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> 

But I need to add the emailList property to several beans. How can I do this without writing a property for each bean? Can preempt a property and inject it into every bean?

I expect something like:

 <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> 
+5
source share
1 answer

You can do this using: util: list

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

Then use this myList link in another beans.

+4
source

Source: https://habr.com/ru/post/1266814/


All Articles