集合注入重要是对数组、List、Set、map的注入,具体注入方法请参照一下代码(重点是applicationContext.xml中对这几个集合注入的方式):
1.在工程中新建一个Department类,该类包含在com.LHB.collection包当中
1 package com.LHB.collection;
2 import java.util.List;
3 import java.util.Map;
4 import java.util.Properties;
5 import java.util.Set;
6 public class Department {
7 private String name;
8 private String[] empName;
9 private List<Employee> empList; //List集合
10 private Set<Employee> empSets; //Set集合
11 private Map<String,Employee> empMap; //map集合
12 private Properties pp; //Properties的使用
13
14 public Properties getPp() {
15 return pp;
16 }
17 public void setPp(Properties pp) {
18 this.pp = pp;
19 }
20 public Map<String, Employee> getEmpMap() {
21 return empMap;
22 }
23 public void setEmpMap(Map<String, Employee> empMap) {
24 this.empMap = empMap;
25 }
26 public Set<Employee> getEmpSets() {
27 return empSets;
28 }
29 public void setEmpSets(Set<Employee> empSets) {
30 this.empSets = empSets;
31 }
32 public List<Employee> getEmpList() {
33 return empList;
34 }
35 public void setEmpList(List<Employee> empList) {
36 this.empList = empList;
37 }
38 public String getName() {
39 return name;
40 }
41 public void setName(String name) {
42 this.name = name;
43 }
44 public String[] getEmpName() {
45 return empName;
46 }
47 public void setEmpName(String[] empName) {
48 this.empName = empName;
49 }
50 }
2.继续在包中创建Employee类
1 package com.LHB.collection;
2 public class Employee {
3 private String name;
4 private int id;
5 public int getId() {
6 return id;
7 }
8 public void setId(int id) {
9 this.id = id;
10 }
11 public String getName() {
12 return name;
13 }
14 public void setName(String name) {
15 this.name = name;
16 }
17
18 }
3.创建applicationContext.xml配置文件,配置重点在数组,List,Set,Map,propertes装载值的环节
1 <?xml version="1.0" encoding="UTF-8"?> 2 <beans xmlns="http://www.springframework.org/schema/beans" 3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 4 xmlns:context="http://www.springframework.org/schema/context" 5 xsi:schemaLocation="http://www.springframework.org/schema/beans 6 http://www.springframework.org/schema/beans/spring-beans.xsd 7 http://www.springframework.org/schema/context 8 http://www.springframework.org/schema/context/spring-context.xsd"> 9 10 <bean id="department" class="com.LHB.collection.Department"> 11 <property name="name" value="财务部门" /> 12 <!-- 给数组注入值 --> 13 <property name="empName"> 14 <list> 15 <value>小米</value> 16 <value>小明</value> 17 <value>小四</value> 18 </list> 19 </property> 20 21 <!-- 给list注入值 可以有相同的多个对象 --> 22 <property name="empList"> 23 <list> 24 <ref bean="emp1" /> 25 <ref bean="emp2"/> 26 </list> 27 </property> 28 <!-- 给set注入值 不能有相同的对象 --> 29 <property name="empSets"> 30 <set> 31 <ref bean="emp1" /> 32 <ref bean="emp2"/> 33 </set> 34 </property> 35 36 <!-- 给map注入值 只要map中的key值不一样就可以装配value --> 37 <property name="empMap"> 38 <map> 39 <entry key="1" value-ref="emp1" /> 40 <entry key="2" value-ref="emp2" /> 41 </map> 42 </property> 43 44 <!-- 给属性集合配置 --> 45 <property name="pp"> 46 <props> 47 <prop key="pp1">hello</prop> 48 <prop key="pp2">world</prop> 49 </props> 50 </property> 51 </bean> 52 <bean id="emp1" class="com.LHB.collection.Employee"> 53 <property name="name"> 54 <value>北京</value> 55 </property> 56 </bean> 57 <bean id="emp2" class="com.LHB.collection.Employee"> 58 <property name="name"> 59 <value>天津</value> 60 </property> 61 </bean> 62 63 </beans>
4.继续在该包中新建App1.java测试类
1 package com.LHB.collection;
2 import java.util.Enumeration;
3 import java.util.Iterator;
4 import java.util.Map;
5 import java.util.Map.Entry;
6 import java.util.Properties;
7
8 import org.springframework.context.ApplicationContext;
9 import org.springframework.context.support.ClassPathXmlApplicationContext;
10 public class App1 {
11
12 public static void main(String[] args) {
13 // TODO Auto-generated method stub
14
15 //通过类路径应用上下文获取配置文件applicationContext.xml
16 ApplicationContext ac = new ClassPathXmlApplicationContext("com/LHB/collection/applicationContext.xml");
17 //通过getBean()获取到applicationContext.xml文件中Bean对象
18 Department dm = (Department) ac.getBean("department");
19 System.out.println(dm.getName());
20 //取出数组中的值
21 for(String emName : dm.getEmpName()){
22 System.out.println(emName);
23 }
24
25 System.out.println("*********通过List集合取出数据******");
26 for(Employee e : dm.getEmpList()){
27 System.out.println("name = "+ e.getName());
28 }
29
30 System.out.println("*********通过Set集合取出数据******");
31 for(Employee e : dm.getEmpSets()){
32 System.out.println("name = "+ e.getName());
33 }
34
35 System.out.println("*********通过Map集合取出数据(迭代器)******");
36 //迭代器
37 Map<String,Employee> empMap = dm.getEmpMap();
38 Iterator it = empMap.keySet().iterator();
39 while(it.hasNext()){
40 String key = (String) it.next();
41 Employee emp = empMap.get(key);
42 System.out.println("key = " + key + " " + emp.getName());
43 }
44 System.out.println("*********通过Map集合取出数据(Emtry简洁法)******");
45 //简洁方法
46 for(Entry<String,Employee> entry : dm.getEmpMap().entrySet()){
47
48 System.out.println(entry.getKey()+ " " + entry.getValue().getName());
49 }
50
51 System.out.println("*********通过Propertis取出数据(通过Entry对象取)******");
52 Properties pp = dm.getPp();
53 for(Entry<Object,Object> entry : pp.entrySet()){
54 System.out.println(entry.getKey().toString() + ", "+ entry.getValue().toString());
55 }
56 System.out.println("*********通过Propertis取出数据(通过Enumeration对象取)******");
57 Enumeration en = pp.keys();
58 while(en.hasMoreElements()){
59 String key = (String) en.nextElement();
60 System.out.println(key + " " + pp.getProperty(key));
61 }
62 }
63 }
运行结果如下:

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/tech/pnotes/15719.html