`

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>

 

分享到:
评论

相关推荐

    SSHnote_Spring基本配置

    SSH笔记-Spring基本配置方法(注入方式、引用bean、级联属性、集合属性、Properties属性、公用的集合bean、p命名空间)

    spring2.5学习PPT 传智博客

    09_Spring如何装配各种集合类型的属性 10_使用构造器装配属性 11_用@Resource注解完成属性装配 12_编码剖析@Resource注解的实现原理 13.@Autowire注解与自动装配 14.让Spring自动扫描和管理Bean 15.使用JDK中...

    spring杂谈 作者zhang KaiTao

    1.18 不重复配置——利用Spring通用化配置 1.19 @Value注入Properties 错误的使用案例 1.20 @Value注入Properties 使用错误的案例 1.21 扩展SpringMVC以支持更精准的数据绑定 1.22 扩展SpringMVC以支持更精准的数据...

    spring4示例代码

    spring-1 演示了使用setter方式及构造器方式创建bean,util:list标签创建集合,p标签简化配置 和依赖注入, 以及bean的autowire和继承与依赖,以及bean的作用域。 spring-2 演示了外部配置文件的引入(connection)...

    Spring的学习笔记

    一、 Spring配置hibernate3的SessionFactory 30 (一) xml形式的SessionFactory 30 (二) annotation注解方式的SessionFactory 30 二、 引入hibernate所需要使用的jar 31 (一) 基本jar 31 (二) 加入annotation功能的...

    spring.doc

    2.2 Spring配置文件 7 2.3 Spring API 8 3 Spring基本功能详解 8 3.1 SpringIOC 8 3.2别名Alias 11 别名拓展: 11 3.3 Spring容器内部对象的创建 12 Spring容器内部对象创建拓展: 12 3.3.1使用类构造器实例化(默认...

    Spring相关测试1

    Spring环境搭建、Spring中Bean的配置(Bean注入的2种方式,注入细节(字面值、引用其他bean、内部bean、集合属性、util scheme 定义集合、p命名空间))

    spring.net中文手册在线版

    Spring.NET是一个应用程序框架,其目的是协助开发人员创建企业级的.NET应用程序。它提供了很多方面的功能,比如依赖注入、面向方面编程(AOP)、数据访问抽象及ASP.NET扩展等等。Spring.NET以Java版的Spring框架为...

    Spring-Reference_zh_CN(Spring中文参考手册)

    6.8.3. 使用Spring IoC来配置AspectJ的切面 6.8.4. 在Spring应用中使用AspectJ Load-time weaving(LTW) 6.9. 其它资源 7. Spring AOP APIs 7.1. 简介 7.2. Spring中的切入点API 7.2.1. 概念 7.2.2. 切入点实施 ...

    spring2.5教程(传智)

    01_全面阐释Spring及其各项功能 ...05_配置Spring管理的bean的作用域 06_Spring管理的Bean的生命周期 07_编码剖析Spring依赖注入的原理 08_编码剖析Spring装配基本属性的原理 09_Spring如何装配各种集合类

    Spring-IOC手动模拟实现-利用dom4解析xml文件

    通过dom4j解析配置文件,得到list集合(存放Bean标签的id和class属性) * 3.通过反射实例化得到对应的实例化对象,放置在map中(map是键值对,可根据id获取值)(遍历list获取对应的class属性,利用class。formName...

    Spring.3.x企业应用开发实战(完整版).part2

    2.2.3 类包及Spring配置文件规划 2.3 持久层 2.3.1 建立领域对象 2.3.2 UserDao 2.3.3 LoginLogDao 2.3.4 在Spring中装配DAO 2.4 业务层 2.4.1 UserService 2.4.2 在Spring中装配Service 2.4.3 单元测试 2.5 展现层 ...

    spring4框架系列 [ 4 ]

    spring4框架系列 [ 4 ] 基于xml注入包含setter、构造、命名空间、集合属性、byName、byType、SPEL、匿名Bean、同类抽象、异类抽象、配置多子配置文件

    springMongodb参考文档中文版

    属性表达式 7.4.4。特殊参数处理 7.4.5。限制查询结果 7.4.6。流式查询结果 7.4.7。异步查询结果 7.5。创建存储库实例 7.5.1。XML配置 7.5.2。JavaConfig 7.5.3。独立使用 7.6。Spring Data存储库的自定义实现 7.6.1...

    Spring攻略(第二版 中文高清版).part1

    1.2 配置Spring IoC容器中的Bean 4 1.2.1 问题 4 1.2.2 解决方案 4 1.2.3 工作原理 4 1.3 调用构造程序创建Bean 14 1.3.1 问题 14 1.3.2 解决方案 14 1.3.3 工作原理 14 1.4 解决构造程序歧义 17 ...

    spring2.5 学习笔记

    一、 Spring配置hibernate3的SessionFactory 30 (一) xml形式的SessionFactory 30 (二) annotation注解方式的SessionFactory 30 二、 引入hibernate所需要使用的jar 31 (一) 基本jar 31 (二) 加入annotation功能的...

    Spring攻略(第二版 中文高清版).part2

    1.2 配置Spring IoC容器中的Bean 4 1.2.1 问题 4 1.2.2 解决方案 4 1.2.3 工作原理 4 1.3 调用构造程序创建Bean 14 1.3.1 问题 14 1.3.2 解决方案 14 1.3.3 工作原理 14 1.4 解决构造程序歧义 17 ...

    Spring3.x企业应用开发实战(完整版) part1

    2.2.3 类包及Spring配置文件规划 2.3 持久层 2.3.1 建立领域对象 2.3.2 UserDao 2.3.3 LoginLogDao 2.3.4 在Spring中装配DAO 2.4 业务层 2.4.1 UserService 2.4.2 在Spring中装配Service 2.4.3 单元测试 2.5 展现层 ...

    ChronicleCollectionSpringUtils:Spring 中用于配置 Chronicle 集合的 Bean 工厂

    可以通过在 Spring 中设置属性来配置 Chronicle Maps。 这些属性与 ChronicleMapBuilder 类用来创建和配置 ChronicleMap 的属性相对应。 This is all you need to create a fully configured Chronicle Map --- ...

Global site tag (gtag.js) - Google Analytics