Spring中注入List,Set,Map,Properties

下面的例子展示了如何注入

  • List – <list/>
  • Set – <set/>
  • Map – <map/>
  • Properties – <props/>

Spring beans

1
2
3
4
5
6
7
8
9
10
11
12
13
14
import  java.util.List;
import  java.util.Map;
import  java.util.Properties;
import  java.util.Set;
  
public  class  Customer
{
     private  List<Object> lists;
     private  Set<Object> sets;
     private  Map<Object, Object> maps;
     private  Properties pros;
  
     //...
}

  配置文件:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
     xsi:schemaLocation="http://www.springframework.org/schema/beans
  
     < bean  id="CustomerBean" class="com.mkyong.common.Customer">
  
         <!-- java.util.List -->
         < property  name="lists">
             < list >
                 < value >1</ value >
                 < ref  bean="PersonBean" />
                 < bean  class="com.mkyong.common.Person">
                     < property  name="name" value="mkyongList" />
                     < property  name="address" value="address" />
                     < property  name="age" value="28" />
                 </ bean >
             </ list >
         </ property >
  
         <!-- java.util.Set -->
         < property  name="sets">
             < set >
                 < value >1</ value >
                 < ref  bean="PersonBean" />
                 < bean  class="com.mkyong.common.Person">
                     < property  name="name" value="mkyongSet" />
                     < property  name="address" value="address" />
                     < property  name="age" value="28" />
                 </ bean >
             </ set >
         </ property >
  
         <!-- java.util.Map -->
         < property  name="maps">
             < map >
                 < entry  key="Key 1" value="1" />
                 < entry  key="Key 2" value-ref="PersonBean" />
                 < entry  key="Key 3">
                     < bean  class="com.mkyong.common.Person">
                         < property  name="name" value="mkyongMap" />
                         < property  name="address" value="address" />
                         < property  name="age" value="28" />
                     </ bean >
                 </ entry >
             </ map >
         </ property >
  
         <!-- java.util.Properties -->
         < property  name="pros">
             < props >
                 < prop  key="admin">admin@nospam.com</ prop >
                 < prop  key="support">support@nospam.com</ prop >
             </ props >
         </ property >
  
     </ bean >
  
     < bean  id="PersonBean" class="com.mkyong.common.Person">
         < property  name="name" value="mkyong1" />
         < property  name="address" value="address 1" />
         < property  name="age" value="28" />
     </ bean >
  
</ beans >

运行:

1
2
3
4
5
6
7
8
9
10
11
public  class  App
{
     public  static  void  main( String[] args )
     {
         ApplicationContext context =  new  ClassPathXmlApplicationContext( "SpringBeans.xml" );
  
         Customer cust = (Customer)context.getBean( "CustomerBean" );
         System.out.println(cust);
  
     }
}

  我们也可以使用ListFactoryBean。The ‘ListFactoryBean‘ class provides developer a way to create a concrete List collection class (ArrayList and LinkedList) in Spring’s bean configuration file.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
< bean  id="CustomerBean" class="com.mkyong.common.Customer">
         < property  name="lists">
             < bean  class="org.springframework.beans.factory.config.ListFactoryBean">
                 < property  name="targetListClass">
                     < value >java.util.ArrayList</ value >
                 </ property >
                 < property  name="sourceList">
                     < list >
                         < value >1</ value >
                         < value >2</ value >
                         < value >3</ value >
                     </ list >
                 </ property >
             </ bean >
         </ property >
     </ bean >

  或者:加入:xmlns:util="http://www.springframework.org/schema/util"然后就可以:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
     xsi:schemaLocation="http://www.springframework.org/schema/beans
  
     < bean  id="CustomerBean" class="com.mkyong.common.Customer">
         < property  name="lists">
             < util:list  list-class="java.util.ArrayList">
                 < value >1</ value >
                 < value >2</ value >
                 < value >3</ value >
             </ util:list >
         </ property >
     </ bean >
  
</ beans >

 

         SetFactoryBean The ‘SetFactoryBean‘ class provides developer a way to create a concrete Set collection (HashSet and TreeSet) in Spring’s bean configuration file.

set和上面的一样:

1
2
3
4
5
6
7
8
9
< bean  id="CustomerBean" class="com.mkyong.common.Customer">
         < property  name="sets">
             < util:set  set-class="java.util.HashSet">
                 < value >1</ value >
                 < value >2</ value >
                 < value >3</ value >
             </ util:set >
         </ property >
     </ bean >

         MapFactoryBean The ‘MapFactoryBean‘ class provides developer a way to create a concrete Map collection class (HashMap and TreeMap) in Spring’s bean configuration file.

map也一样:

1
2
3
4
5
6
7
8
9
< bean  id="CustomerBean" class="com.mkyong.common.Customer">
         < property  name="maps">
             < util:map  map-class="java.util.HashMap">
                 < entry  key="Key1" value="1" />
                 < entry  key="Key2" value="2" />
                 < entry  key="Key3" value="3" />
             </ util:map >
         </ property >
     </ bean >

  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值