ITEEDU

Spring Gossip: 集合对象注入

对于像数组、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>