Spring之配置集合属性

 

在 Spring中可以通过一组内置的 xml 标签(例如: <list>, <set> 或 <map>) 来配置集合属性.

配置 java.util.List 类型的属性, 需要指定 <list>  标签, 在标签里包含一些元素. 这些标签可以通过 <value> 指定简单的常量值, 通过 <ref> 指定对其他 Bean 的引用. 通过<bean> 指定内置 Bean 定义. 通过 <null/> 指定空元素. 甚至可以内嵌其他集合.

数组的定义和 List 一样, 都使用 <list>

配置 java.util.Set 需要使用 <set> 标签, 定义元素的方法与 List 一样.

 

 

Java.util.Map 通过 <map> 标签定义, <map> 标签里可以使用多个 <entry> 作为子标签. 每个条目包含一个键和一个值. 

必须在 <key> 标签里定义键

因为键和值的类型没有限制, 所以可以自由地为它们指定 <value>, <ref>, <bean> 或 <null> 元素. 

可以将 Map 的键和值作为 <entry> 的属性定义: 简单常量使用 key 和 value 来定义; Bean 引用通过 key-ref 和 value-ref 属性定义

使用 <props> 定义 java.util.Properties, 该标签使用多个 <prop> 作为子标签. 每个 <prop> 标签必须定义 key 属性. 

 

定义Java类

 

package xyz.huning.spring4.di;

import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.Properties;
import java.util.Set;

public class Student {

	private int id;

	private String[] teacherNameArray;
	
	private List<String> teacherNameList;
	
	private Set<String> teacherNameSet;
	
	private Map<Integer,String> teacherNameMap;
	
	private Teacher[] teacherArray;
	
	private List<Teacher> teacherList;
	
	private Set<Teacher> teacherSet;
	
	private Map<String,Teacher> teacherMap;
	
	private Properties properties;

	public int getId() {
		return id;
	}

	public void setId(int id) {
		this.id = id;
	}

	public String[] getTeacherNameArray() {
		return teacherNameArray;
	}

	public void setTeacherNameArray(String[] teacherNameArray) {
		this.teacherNameArray = teacherNameArray;
	}

	public List<String> getTeacherNameList() {
		return teacherNameList;
	}

	public void setTeacherNameList(List<String> teacherNameList) {
		this.teacherNameList = teacherNameList;
	}

	public Set<String> getTeacherNameSet() {
		return teacherNameSet;
	}

	public void setTeacherNameSet(Set<String> teacherNameSet) {
		this.teacherNameSet = teacherNameSet;
	}

	public Map<Integer, String> getTeacherNameMap() {
		return teacherNameMap;
	}

	public void setTeacherNameMap(Map<Integer, String> teacherNameMap) {
		this.teacherNameMap = teacherNameMap;
	}

	public Teacher[] getTeacherArray() {
		return teacherArray;
	}

	public void setTeacherArray(Teacher[] teacherArray) {
		this.teacherArray = teacherArray;
	}

	public List<Teacher> getTeacherList() {
		return teacherList;
	}

	public void setTeacherList(List<Teacher> teacherList) {
		this.teacherList = teacherList;
	}

	public Set<Teacher> getTeacherSet() {
		return teacherSet;
	}

	public void setTeacherSet(Set<Teacher> teacherSet) {
		this.teacherSet = teacherSet;
	}

	public Map<String, Teacher> getTeacherMap() {
		return teacherMap;
	}

	public void setTeacherMap(Map<String, Teacher> teacherMap) {
		this.teacherMap = teacherMap;
	}

	public Properties getProperties() {
		return properties;
	}

	public void setProperties(Properties properties) {
		this.properties = properties;
	}

	@Override
	public String toString() {
		return "Student [id=" + id + ", teacherNameArray="
				+ Arrays.toString(teacherNameArray) + ", teacherNameList="
				+ teacherNameList + ", teacherNameSet=" + teacherNameSet
				+ ", teacherNameMap=" + teacherNameMap + ", teacherArray="
				+ Arrays.toString(teacherArray) + ", teacherList="
				+ teacherList + ", teacherSet=" + teacherSet + ", teacherMap="
				+ teacherMap + ", properties=" + properties + "]";
	}

}

 

package xyz.huning.spring4.di;

public class Teacher {

	private int id;
	
	private String name;

	public int getId() {
		return id;
	}

	public void setId(int id) {
		this.id = id;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	@Override
	public String toString() {
		return "Teacher [id=" + id + ", name=" + name + "]";
	}
	
}

 

<!--配置一个 bean-->
	<bean id="teacher1" class="xyz.huning.spring4.di.Teacher">
		<property name="id" value="1"></property>
		<property name="name" value="LiJun"></property>
	</bean>
	
	
	<!--配置一个 bean-->
	<bean id="teacher2" class="xyz.huning.spring4.di.Teacher">
		<property name="id" value="2"></property>
		<property name="name" value="WangTian"></property>
	</bean>
	
	<!--配置一个 bean-->
	<bean id="teacher3" class="xyz.huning.spring4.di.Teacher">
		<property name="id" value="3"></property>
		<property name="name" value="ChenXin"></property>
	</bean>
	
	
	<!--配置一个 bean-->
	<!--基本类型的数组-->
	<bean id="student1" class="xyz.huning.spring4.di.Student">
		<property name="id" value="1"></property>
		<property name="teacherNameArray">
			<array>
				<value>LiJun</value>
				<value>WangTian</value>
				<value>ChenXin</value>
			</array>
		</property>
	</bean>
	
	<!--配置一个 bean-->
	<!--基本类型的List-->
	<bean id="student2" class="xyz.huning.spring4.di.Student">
		<property name="id" value="2"></property>
		<property name="teacherNameList">
			<list>
				<value>LiJun</value>
				<value>WangTian</value>
				<value>ChenXin</value>
			</list>
		</property>
	</bean>
	
	<!--配置一个 bean-->
	<!--基本类型的Set-->
	<bean id="student3" class="xyz.huning.spring4.di.Student">
		<property name="id" value="3"></property>
		<property name="teacherNameSet">
			<set>
				<value>LiJun</value>
				<value>WangTian</value>
				<value>ChenXin</value>
			</set>
		</property>
	</bean>
	
	<!--配置一个 bean-->
	<!--基本类型的Map-->
	<bean id="student4" class="xyz.huning.spring4.di.Student">
		<property name="id" value="4"></property>
		<property name="teacherNameMap">
			<map>
				<entry key="1" value="LiJun"></entry>
				<entry key="2" value="WangTian"></entry>
				<entry key="3" value="ChenXin"></entry>
			</map>
		</property>
	</bean>
	
	<!--配置一个 bean-->
	<!--对象类型的数组-->
	<bean id="student5" class="xyz.huning.spring4.di.Student">
		<property name="id" value="5"></property>
		<property name="teacherArray">
			<array>
				<ref bean="teacher1"/>
				<ref bean="teacher2"/>
				<ref bean="teacher3"/>
			</array>
		</property>
	</bean>
	
	<!--配置一个 bean-->
	<!--对象类型的List-->
	<bean id="student6" class="xyz.huning.spring4.di.Student">
		<property name="id" value="6"></property>
		<property name="teacherList">
			<list>
				<ref bean="teacher1"/>
				<ref bean="teacher2"/>
				<ref bean="teacher3"/>
			</list>
		</property>
	</bean>
	
	<!--配置一个 bean-->
	<!--对象类型的Set-->
	<bean id="student7" class="xyz.huning.spring4.di.Student">
		<property name="id" value="7"></property>
		<property name="teacherSet">
			<set>
				<ref bean="teacher1"/>
				<ref bean="teacher2"/>
				<ref bean="teacher3"/>
			</set>
		</property>
	</bean>
	
	<!--配置一个 bean-->
	<!--对象类型的Map-->
	<bean id="student8" class="xyz.huning.spring4.di.Student">
		<property name="id" value="8"></property>
		<property name="teacherMap">
			<map>
                <entry key="1" value-ref="teacher1"></entry>
                <entry key="2" value-ref="teacher2"></entry>
                <entry key="3" value-ref="teacher3"></entry>
			</map>
		</property>
	</bean>
	
	<!--配置一个 bean-->
	<!--Properties类型-->
	<bean id="student9" class="xyz.huning.spring4.di.Student">
		<property name="id" value="9"></property>
		<property name="properties">
			<props>
				<prop key="name">huning</prop>
				<prop key="gender">male</prop>
				<prop key="length">170</prop>
			</props>
		</property>
	</bean>

 

你可能感兴趣的:(spring)