Spring集合的注入
Spring中对bean配置基本数据类型值的注入,使用的是<property>标签的value属性;对象引用的注入,使用的是ref属性。这两种情况都是设置一个单值给一个java bean。如果要对集合初始化赋值,如Java Collection类型List, Set, Map 及 Properties,该如何处理呢?
处理这种情况,Spring提供了四种类型的如下集合的配置元素:
元素 |
描述 |
<list> |
注入列表List配置,可以重复。 |
<set> |
注入Set集合配置,但不能重复。 |
<map> |
注入键 - 值对,其中名称和值可以是任何类型对象。 |
<props> |
注入键 - 值对,其中名称和值都是字符串。 |
比如,有以下一个java类,包含了几个集合属性:
public class JavaCollection {
private List addressList;
private Set addressSet;
private Map addressMap;
private Properties addressProp;
//省略getter和setter
}
那么我们如何在配置文件beans.xml文件中注入所有集合属性的值呢?请看下面这个例子:
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
<!-- Definition for javaCollection -->
<bean id="javaCollection" class="com.bwf.JavaCollection">
<property name="addressList">
<list>
<value>博为峰</value>
<value>51code</value>
<value>51TESTING</value>
<value>51TESTING</value>
</list>
</property>
<property name="addressSet">
<set>
<value>博为峰</value>
<value>51code</value>
<value>51TESTING</value>
<value>bwf</value>
</set>
</property>
<property name="addressMap">
<map>
<entry key="1" value="博为峰"/>
<entry key="2" value="51code"/>
<entry key="3" value="51TESTING"/>
<entry key="4" value="51TESTING"/>
</map>
</property>
<property name="addressProp">
<props>
<prop key="one" value=”博为峰”></prop>
<prop key="two" value=”51code”></prop>
<prop key="three" value=”51TESTING”></prop>
<prop key="four” value =”51TESTING”></prop>
</props>
</property>
</bean>
</beans>
从这个例子我们可以看出,<list>、<set>元素使用的是<value>赋值;<map>元素使用的是<entry>赋值;<props>元素使用<prop>赋值。
现在我们学会了如何为一个集合进行初始化赋值简单类型,那么如果要赋值一个对象引用该如何操作呢?我们在下一篇中将会展示如何为集合赋值引用对象。