Spring复杂类型注入

数组、list、map等复杂类型的注入方法

1、当数组中只有一个元素或一个对象的时候,可以使用基本类型的注入方法,当唯一的元素为基本类型的时候使用value,为引用类型的时候使用ref,其他list、map复杂类型同理。

1  <bean name="collection" class="entity.Collection">
2         <property name="arr" value="jerry"></property>
3     </bean>

实体类为

 1 package entity;
 2 
 3 import java.util.Arrays;
 4 import java.util.List;
 5 import java.util.Map;
 6 import java.util.Properties;
 7 
 8 public class Collection {
 9     private Object[] arr;
10     private List list;
11     private Map map;
12     private Properties prop;
13 
14     public Object[] getArr() {
15         return arr;
16     }
17 
18     public void setArr(Object[] arr) {
19         this.arr = arr;
20     }
21 
22     public List getList() {
23         return list;
24     }
25 
26     public void setList(List list) {
27         this.list = list;
28     }
29 
30     public Map getMap() {
31         return map;
32     }
33 
34     public void setMap(Map map) {
35         this.map = map;
36     }
37 
38     public Properties getProp() {
39         return prop;
40     }
41 
42     public void setProp(Properties prop) {
43         this.prop = prop;
44     }
45 
46     @Override
47     public String toString() {
48         return "Collection{" +
49                 "arr=" + Arrays.toString(arr) +
50                 ", list=" + list +
51                 ", map=" + map +
52                 ", prop=" + prop +
53                 '}';
54     }
55 }

测试类为

 1 package injection;
 2 
 3 import entity.Collection;
 4 import entity.User;
 5 import org.springframework.context.ApplicationContext;
 6 import org.springframework.context.support.ClassPathXmlApplicationContext;
 7 
 8 public class DemoTest {
 9 
10     @org.junit.Test
11     public void fun3() throws Exception {
12         //1、创建容器对象,从类路径下去加载xml的配置文件
13         ApplicationContext ac=new ClassPathXmlApplicationContext("\\injection\\applicationContext.xml");
14         //想容器要对象
15         Collection c=(Collection) ac.getBean("collection");
16         System.out.println(c);
17     }
18 }

输出:

 

 当数组中含有多个元素的时候,通过如下方式书写配置文件

 

1     <bean name="collection" class="entity.Collection">
2         <property name="arr">
3             <array>
4                 <value>Tom</value>
5                 <value>Jerry</value>
6                 <ref bean="user"></ref>
7             </array>
8         </property>
9     </bean>

ref标签用来配置对象,一个数组里面可以含有不同类型的元素,测试结果打印如下

 

 

List类型注入

<property name="list" value="jack"></property>  
1       <property name="list" >
2             <list>
3                 <value>1</value>
4                 <value>2</value>
5                 <ref bean="car"></ref>
6             </list>
7         </property>
8     </bean>

Map类型注入

1 <property name="map" >
2             <map>
3                 <entry key="url" value="www.baidu.com"></entry>
4                 <entry key="user" value-ref="user"></entry>
5                 <entry key-ref="user" value-ref="car"></entry>
6             </map>
7         </property>

properties类型注入

1 <property name="prop">
2             <props>
3                 <prop key="key">value</prop>
4                 <prop key="password">123</prop>
5             </props>
6         </property>

 

posted @ 2017-12-04 18:29  Garcia11  阅读(587)  评论(0)    收藏  举报