Spring中给Bean注入集合

Spring中如果一个Bean里含有集合元素,需要给Bean里的集合元素注入元素时,可以采用如下方法,一个是构造器注入,一个是setter注入

JavaBean源代码:

 

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();

	}

}

 

这个JavaBean里面有三个集合List、Set、Map,以下是Spring的配置文件

<?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>

这个配置文件采用的是构造函数的方式进行注入的,能够让程序工作起来,下面是另一配置文件采用的是setter方法注入,同样也可以让程序跑起来。

<?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">

	<!-- 通过setter方法向Name元素设置值 -->

	<property name="Name" value="ppTest"></property>

	<!-- 通过setter方法向Set集合填加元素 -->

	<property name="Set">

	<set>

		<value>我是中国人</value>

		<value>哈哈</value>

		<!-- 这个是加不去的,由Set的特性来决定的 -->

		<value>哈哈</value>

	</set>

	</property>

	<!-- 通过setter方法向Map集合填加元素 -->

	<property name="Map">

	<map>

		<entry key="5" value="小学"></entry>

		<entry key="11" value="初中"></entry>

		<entry key="17" value="大学"></entry>

	</map>

	</property>

	<!-- 通过setter方法向list集合填加元素 -->

	<property name="Meal">

	<list>

		<value>粥</value>

		<value>粥</value>

		<value>粥</value>

	</list>

	</property>

	</bean>

</beans>

如果想给一个属性装配一个空值,采用如下方式即可

<null/>

你可能感兴趣的:(spring)