对于像数组、java.util.List、java.util.Set、java.util.Map等集合对象,在注入前必须填充入一些对象至集合中,然后再将集合对象注入至所需的Bean中,例如若有个Bean如下:
public class SomeBean { private String[] someStrArray; private SomeObj[] someObjArray; private List someList; private Map someMap; .... }
对于这个需求,Spring也可以帮您维护,直接来看Bean定义档如何设定:
... <beans> <bean id="someBean" class="onlyfun.caterpillar.SomeBean"> <property name="someArray"> <list> <value>Hello!Justin!</value> <value>Hello!Momor!</value> <value>Hello!Bush!</value> </list> </property> <property name="someObjArray"> <list> <ref bean="someObj1"/> <ref bean="someObj2"/> </list> </property> <property name="someList"> <list> <value>Hello!Justin!</value> <ref bean="someObj1"/> <ref bean="someObj2"/> </list> </property> <property name="someMap"> <map> <entry key="somekey1"> <ref bean="someObj1"/> </entry> <entry key="somekey2"> <value>Hello!Justin!</value> </entry> </map> </property> </bean> </beans>
上面的Bean定义档是个综合示范,数组与List对象都是用<list>卷标来设定,而Map对象使用<map>标签设定,并需要一个key值设定。
Set的使用<set>标签,例如:
<set> <value>a set element</value> <ref bean="otherBean"/> <ref bean="anotherBean"/> </set>
您也可以注入java.util.Properties,Bean定义档的写法示范如下:
.... <bean id=....> .... <property name="someProperties"> <props> <prop key="someProkey1"> someProValue1 </prop> <prop key="someProkey2"> someProValue2 </prop> </props> </property> </bean>