Spring基于xml配置文件对list、set、map集合的属性注入

Spring基于xml配置文件对list、set、map集合的属性注入

        创建项目,导入 spring 所依赖的 jar 包,MyEclipse 开发工具的话,直接右击项目 MyEclipse --> Add Spring Capabilities... 添加 spring 容器。示例中以学生类(Student)和班级类(Grade)作为基本类:
一、list 集合属性注入

1、创建 Student 和 Grade 两个实体类

package com.aaa.beans.list;

/**
 * @Description 学生类
 * @author 刘鹏博
 * @version v1.0
 * @date 2018-3-25
 **/
public class Student {
	private String name;
	private Integer age;
	private Grade grade;
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public Integer getAge() {
		return age;
	}
	public void setAge(Integer age) {
		this.age = age;
	}
	public Grade getGrade() {
		return grade;
	}
	public void setGrade(Grade grade) {
		this.grade = grade;
	}
	@Override
	public String toString() {
		return "Student [name=" + name + ", age=" + age + "]";
	}
	
}
package com.aaa.beans.list;

import java.util.List;

/**
 * @Description 班级类
 * @author 刘鹏博
 * @version v1.0
 * @date 2018-3-25
 **/
public class Grade {
	private String name;
	private List students;
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public List getStudents() {
		return students;
	}
	public void setStudents(List students) {
		this.students = students;
	}
	@Override
	public String toString() {
		return "Grade [name=" + name + ", students=" + students + "]";
	}
	
}

2、创建 spring.xml 配置文件



	
	
	
	
	

	
	

	
	
		
		
			
					
					
							
			
		
	

3、创建 Test 测试类

package com.aaa.beans.list;


import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;


/**
 * @Description 测试类
 * @author 刘鹏博
 * @version v1.0
 * @date 2018-3-25
 **/
public class Test {
	public static void main(String[] args) {
		ApplicationContext path = new ClassPathXmlApplicationContext("com/aaa/beans/list/spring.xml");
		Grade bean = (Grade) path.getBean("grade");
		System.out.println(bean);
	
	}

}	
二、set 集合属性注入

        set 集合属性注入和 list 集合基本相同,不一样的地方只是 实体类的班级返回值类型和 spring.xml 配置文件中的属性集合类型,list 标签改为 set 标签即可。

三、map 集合属性注入

        map 集合我们都熟知,它的储存方式是以键值对的方式进行存储,其中key值不能重复。下面我们使用 map 集合对它进行属性的注入,和 list、set 有些区别。

1、创建 Student 和 Grade 两个实体类

package com.aaa.beans.map;

/**
 * @Description 学生类
 * @author 刘鹏博
 * @version v1.0
 * @date 2018-3-25
 **/
public class Student {
	private String name;
	private Integer age;
	private Grade grade;
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public Integer getAge() {
		return age;
	}
	public void setAge(Integer age) {
		this.age = age;
	}
	public Grade getGrade() {
		return grade;
	}
	public void setGrade(Grade grade) {
		this.grade = grade;
	}
	@Override
	public String toString() {
		return "Student [name=" + name + ", age=" + age + "]";
	}
	
	
}
package com.aaa.beans.map;

import com.sun.javafx.collections.MappingChange.Map;

/**
 * @Description 班级类
 * @author 刘鹏博
 * @version v1.0
 * @date 2018-3-25
 **/
public class Grade {
	private String name;
	private Map students;
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	
	public Map getStudents() {
		return students;
	}
	public void setStudents(Map students) {
		this.students = students;
	}
	@Override
	public String toString() {
		return "Grade [name=" + name + ", students=" + students + "]";
	}
}
2、创建 spring.xml 配置文件


	
	
	
	
	
	

	
	

	
	
		
		
			
				
				
				
			
		
	

3、测试类同上,需要注意的是 map 集合中注入属性值时是使用的 entry 标签,设置其中的 key 值和 value 值。


你可能感兴趣的:(Spring)