`

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集合属性

    当我们处理Spring配置时,可以通过XML或Java配置方式来声明集合属性。例如,在XML配置中,可以这样定义一个包含List类型的属性: ```xml &lt;value&gt;value1 &lt;value&gt;value2 &lt;value&gt;value3 ``` 在这个例子...

    day38 14-Spring的Bean的属性的注入:集合属性的注入

    总之,Spring的集合属性注入为开发者提供了极大的灵活性,能够方便地管理和配置Bean之间的依赖关系。无论是简单的列表还是复杂的Map结构,都能轻松应对。通过理解并熟练掌握这些注入机制,你可以更有效地构建和维护...

    Spring如何装配各种集合类型的属性

    如果集合元素的bean名称与集合属性的类型匹配,Spring会使用基于名称的装配。例如,如果集合元素是`List&lt;Address&gt;`,且存在多个`Address`类型的bean,它们的名称分别与集合元素的类型匹配,如`homeAddress`、`work...

    spring bean 属性总结

    - **&lt;list&gt;/&lt;map&gt;/&lt;set&gt;/&lt;props&gt;`元素**:用于配置集合类型属性,如List、Map、Set和Properties。 #### 总结 Spring的`&lt;beans&gt;`和`&lt;bean&gt;`元素及其属性提供了强大的配置能力,使开发者能够灵活地定义、配置和管理...

    SSHnote_Spring基本配置

    在Spring配置文件中,我们可以定义bean并为其指定一个唯一的ID。通过这个ID,我们可以在其他bean的配置中引用它,实现bean之间的依赖关系。例如,`&lt;bean id="exampleBean" class="com.example.ExampleClass" /&gt;`定义...

    spring配置文件模板

    《Spring配置文件模板详解》 在Java开发领域,Spring框架以其强大的依赖注入(Dependency Injection,简称DI)和面向切面编程(Aspect-Oriented Programming,简称AOP)能力,成为了企业级应用开发的重要选择。而...

    Spring中集合类型的装配

    首先,Spring支持通过XML配置文件进行集合类型的装配。在XML配置中,我们可以使用`&lt;list&gt;`、`&lt;set&gt;`、`&lt;map&gt;`和`&lt;props&gt;`标签来定义不同的集合类型。例如,如果我们要注入一个包含多个bean的List,可以这样写: ```...

    Spring对集合的装配(各种集合类型的属性的注入方式)

    在Spring框架中,集合装配是将一组对象注入到如List、Set、Map等集合类型属性中的过程。...通过Spring的依赖注入机制,我们可以轻松地管理集合属性,提高代码的可读性和可维护性。这正是Spring框架的核心价值之一。

    spring 普通属性注入

    在Spring框架中,属性注入是核心特性之一,它允许我们通过依赖注入(Dependency Injection, DI)来管理对象的属性,而不是让对象自行创建或查找它们的依赖。这有助于提高代码的可测试性、可维护性和解耦性。下面将...

    spring 配置文件 归类

    - `props`、`list`、`map`: 支持配置集合类型属性,如`people`、`someList`和`someMap`。 总的来说,Spring的配置文件是实现IOC和AOP的关键,通过合理的配置,可以实现对象的管理、依赖注入以及面向切面的编程,...

    spring security2配置

    在这个"Spring Security2配置"的主题中,我们将深入探讨如何配置Spring Security来保护我们的应用程序,以及它的一些核心概念。 首先,让我们理解Spring Security的基本组件。`Users.java`、`Roles.java`暗示了用户...

    spring的一些基本知识及如何配置使用

    【Spring 框架基本知识及配置使用】 Spring 框架是Java开发中的一个核心框架,由Rod Johnson创建,最初源于《Expert One on One ...了解并掌握Spring的基本知识和配置使用,对于Java开发者来说是必不可少的技能之一。

    springcloud部署redis集群

    以下将详细介绍如何在SpringCloud中配置和使用Redis集群。 首先,你需要了解Redis集群的基本概念。Redis集群通过数据分片(Sharding)技术,将数据分散存储在多个节点上,每个节点只负责一部分数据,从而实现数据的...

    基于Spring2.0的Collection配置使用例子

    总结来说,Spring 2.0的集合配置是实现依赖注入的强大工具,它允许开发者轻松管理Bean的集合属性,提高了代码的可读性和可维护性。通过`CollectionDemo`实例,我们可以深入理解和实践这些概念,从而更好地掌握Spring...

    Spring学习笔记(7)----装配各种集合类型的属性

    了解这些装配方法后,我们可以在Spring应用中更加灵活地管理和配置集合类型的属性。在实际项目中,根据需求选择合适的装配方式,既能保证代码的简洁性,也能确保组件间的依赖关系得到妥善处理。 这篇博客可能还涵盖...

    spring 所有包和配置文件

    除了简单bean,还可以配置复杂结构,如注入其他bean、集合类型、属性值等。 Spring框架包含多个模块,这些模块分别对应不同的包。例如: 1. **Core Container**(核心容器):包括Core、Beans、Context和Expression...

    SpringBoot官网基本属性集合(中英文)

    SpringBoot是一款由Pivotal团队开发的框架,它旨在简化Spring应用的初始...提供的`SpringBoot官网基本属性集合(英文).txt`和`SpringBoot官网基本属性集合(中文).txt`文件应该包含了这些详细信息,供开发者查阅和参考。

    Spring中的结合配置

    在Spring框架中,集合配置是将Java集合对象如List、Set和Map与IoC容器集成的关键部分。这些配置允许我们动态地注入集合数据,为应用提供灵活的数据结构。本篇文章将详细探讨如何在Spring中配置这三种类型的集合。 ...

    spring-core3.2.5集合包

    《Spring Core 3.2.5 集合包详解》 Spring Core 是 Spring 框架的基础,它是整个 Spring 家族的核心组件,为其他模块提供了基础支持。3.2.5 版本是 Spring Core 的一个重要里程碑,它包含了多个关键的组件和功能,...

    Spring的Bean配置说明

    #### 一、Spring配置文件根元素`&lt;beans&gt;`解析 - **功能概述**:`&lt;beans&gt;`是Spring配置文件的根元素,用来包含一个或多个`&lt;bean&gt;`元素,用于定义Spring容器管理的各种Bean。 #### 二、`&lt;bean&gt;`元素详解 - **基础...

Global site tag (gtag.js) - Google Analytics