bean中注入集合
使用value属性和使用<property>标签的ref属性在你的bean配置文件中的对象引用,这两种情况下可以处理单值到一个bean,如果你想通过多元值,如Java Collection类型List, Set, Map 及 Properties。要处理这种情况,Spring提供了四种类型的如下集合的配置元素:
需要给Bean里的集合元素注入元素时,可以采用如下方法,一个是构造器注入,一个是setter注入
import java.util.List;
import java.util.Map;
import java.util.Set;
//一个普通的JavaBean
public class Person {
//人的名字
private String name;
//一个人可以唱N首歌,歌名不能重复
private Set<String> set;
//一个人几岁对应学生生涯的哪一个时期
private Map<Integer,String> map;
//一个人早中晚吃的饭(值可以重复)
private List<String> meal;
//getter方法
public String getName() {
return name;
}
//setter方法
public void setName(String name) {
this.name = name;
}
//getter方法
public Set<String> getSet() {
return set;
}
//setter方法
public void setSet(Set<String> set) {
this.set = set;
}
//getter方法
public Map<Integer, String> getMap() {
return map;
}
//setter方法
public void setMap(Map<Integer, String> map) {
this.map = map;
}
//getter方法
public List<String> getMeal() {
return meal;
}
//setter方法
public void setMeal(List<String> meal) {
this.meal = meal;
}
//一个构造函数
public Person(String S_name, Set<String> set, Map<Integer, String> map,
List<String> meal) {
super();
this.name = S_name;
this.set = set;
this.map = map;
this.meal = meal;
}
//默认的构造函数
public Person() {
super();
}
}
在xml中配置bean的时候就可以设置集合
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"> <bean id="person" class="com.pp.Person"> <!-- 给构造函数的第一个参数传值 --> <constructor-arg value="pptest"></constructor-arg> <!-- 给构造函数的第二个参数传值 --> <constructor-arg> <set> <value>我是中国人</value> <value>哈哈</value> <!-- 由于集合的特性,这个是加不进去的 --> <value>哈哈</value> </set> </constructor-arg> <!-- 给构造函数的第三个参数传值 --> <constructor-arg> <map> <entry key="5" value="小学"></entry> <entry key="11" value="初中"></entry> <entry key="14" value="高中"></entry> <entry key="17" value="大学"></entry> </map> </constructor-arg> <!-- 给构造函数的第四个传数传参 --> <constructor-arg> <list> <value>粥</value> <value>粥</value> <value>粥</value> </list> </constructor-arg> </bean> </beans>