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
< beans  xmlns="http://www.springframework.org/schema/beans"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="http://www.springframework.org/schema/beans
     http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
  
     < 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
< beans  xmlns="http://www.springframework.org/schema/beans"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xmlns:util="http://www.springframework.org/schema/util"
     xsi:schemaLocation="http://www.springframework.org/schema/beans
     http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
     http://www.springframework.org/schema/util
     http://www.springframework.org/schema/util/spring-util-2.5.xsd">
  
     < 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 >

  

 

 

 

 


==============================================================================
本文转自被遗忘的博客园博客,原文链接:http://www.cnblogs.com/rollenholt/archive/2012/12/27/2835122.html,如需转载请自行联系原作者
相关文章
|
5月前
|
资源调度 前端开发
编译第三方前端项目时候出现Syntax Error: TypeError: Cannot set properties of undefined (setting ‘parent‘)
编译第三方前端项目时候出现Syntax Error: TypeError: Cannot set properties of undefined (setting ‘parent‘)
399 0
|
2月前
|
JavaScript 前端开发
15 Uncaught TypeError: Cannot set properties of null (setting ‘onclick‘)
这篇文章解释了在HTML文档中因JavaScript代码在页面元素加载之前执行导致的"Cannot set properties of null (setting ‘onclick’)"错误,并提供了将JavaScript代码置于`<body>`标签内或使用`window.onload`事件确保DOM完全加载后再绑定事件处理器的解决办法。
15 Uncaught TypeError: Cannot set properties of null (setting ‘onclick‘)
TypeError: Cannot set properties of undefined (setting ‘resdata‘),res定义数据出现的问题,定义的方法用this换成that
TypeError: Cannot set properties of undefined (setting ‘resdata‘),res定义数据出现的问题,定义的方法用this换成that
|
5月前
|
IDE Java 开发工具
灵活配置 Spring 集合:List、Set、Map、Properties 详解
使用<property>标签的value属性配置原始数据类型和ref属性配置对象引用的方式来定义Bean配置文件。这两种情况都涉及将单一值传递给Bean
116 1
|
5月前
|
Java
Java【代码分享 11】yaml配置List和Map参数对象的配置信息及类文件实例分享(效仿GatewayDynamic+DynamicDataSource的注入方法)
Java【代码分享 11】yaml配置List和Map参数对象的配置信息及类文件实例分享(效仿GatewayDynamic+DynamicDataSource的注入方法)
219 0
|
5月前
|
XML Java 数据格式
spring怎么去引用/注入集合/数组类型和 怎么通过 util 名称空间创建 list以及 怎么去通过级联属性赋值
spring怎么去引用/注入集合/数组类型和 怎么通过 util 名称空间创建 list以及 怎么去通过级联属性赋值
64 0
|
5月前
Spring-数组、List、Set、Map、Properties依赖注入格式
Spring-数组、List、Set、Map、Properties依赖注入格式
41 0
|
4月前
|
安全 Java
java线程之List集合并发安全问题及解决方案
java线程之List集合并发安全问题及解决方案
626 1
|
3月前
|
Java API Apache
怎么在在 Java 中对List进行分区
本文介绍了如何将列表拆分为给定大小的子列表。尽管标准Java集合API未直接支持此功能,但Guava和Apache Commons Collections提供了相关API。
|
3月前
|
运维 关系型数据库 Java
PolarDB产品使用问题之使用List或Range分区表时,Java代码是否需要进行改动
PolarDB产品使用合集涵盖了从创建与管理、数据管理、性能优化与诊断、安全与合规到生态与集成、运维与支持等全方位的功能和服务,旨在帮助企业轻松构建高可用、高性能且易于管理的数据库环境,满足不同业务场景的需求。用户可以通过阿里云控制台、API、SDK等方式便捷地使用这些功能,实现数据库的高效运维与持续优化。