`
Appleses
  • 浏览: 348032 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Spring集合注入 (转)

阅读更多
Spring可以对集合类型进行注入包括:Set集合,properties属性集合,Map集合以及List集合

注入方式如下:



Java代码 
01.package com.test;  
02. 
03.import java.util.ArrayList;  
04.import java.util.HashMap;  
05.import java.util.HashSet;  
06.import java.util.Map;  
07.import java.util.Properties;  
08.import java.util.Set;  
09.import java.util.List;  
10. 
11.public class UserServiceImplement implements IUserService {  
12. 
13.    public Set<String> getS() {  
14.        return s;  
15.    }  
16. 
17.    public void setS(Set<String> s) {  
18.        this.s = s;  
19.    }  
20. 
21.    public Map<String, String> getM() {  
22.        return m;  
23.    }  
24. 
25.    public void setM(Map<String, String> m) {  
26.        this.m = m;  
27.    }  
28. 
29.    public Properties getP() {  
30.        return p;  
31.    }  
32. 
33.    public void setP(Properties p) {  
34.        this.p = p;  
35.    }  
36. 
37.    public List<String> getL() {  
38.        return l;  
39.    }  
40. 
41.    public void setL(List<String> l) {  
42.        this.l = l;  
43.    }  
44. 
45.    private Set<String> s = new HashSet<String>();  
46.    private Map<String, String> m = new HashMap<String, String>();  
47.    private Properties p = new Properties();  
48.    private List<String> l = new ArrayList<String>();  
49. 
50.    public void saveUser() {  
51.        System.out.println("Set集合注入");  
52.        for (String str : s) {  
53.            System.out.println(str);  
54.        }  
55. 
56.        System.out.println("------------------------------");  
57.        System.out.println("Map集合注入");  
58.        for (String str : m.values()) {  
59.            System.out.println(str);  
60.        }  
61. 
62.        System.out.println("------------------------------");  
63.        System.out.println("Properties属性集合注入");  
64.        for (Object str : p.values()) {  
65.            System.out.println(str);  
66.        }  
67. 
68.        System.out.println("------------------------------");  
69.        System.out.println("List集合注入");  
70.        for (String str : l) {  
71.            System.out.println(str);  
72.        }  
73.    }  
74.} 



[java] view plaincopy
01.package com.test; 
02. 
03.import java.util.ArrayList; 
04.import java.util.HashMap; 
05.import java.util.HashSet; 
06.import java.util.Map; 
07.import java.util.Properties; 
08.import java.util.Set; 
09.import java.util.List; 
10. 
11.public class UserServiceImplement implements IUserService { 
12. 
13.    public Set<String> getS() { 
14.        return s; 
15.    } 
16. 
17.    public void setS(Set<String> s) { 
18.        this.s = s; 
19.    } 
20. 
21.    public Map<String, String> getM() { 
22.        return m; 
23.    } 
24. 
25.    public void setM(Map<String, String> m) { 
26.        this.m = m; 
27.    } 
28. 
29.    public Properties getP() { 
30.        return p; 
31.    } 
32. 
33.    public void setP(Properties p) { 
34.        this.p = p; 
35.    } 
36. 
37.    public List<String> getL() { 
38.        return l; 
39.    } 
40. 
41.    public void setL(List<String> l) { 
42.        this.l = l; 
43.    } 
44. 
45.    private Set<String> s = new HashSet<String>(); 
46.    private Map<String, String> m = new HashMap<String, String>(); 
47.    private Properties p = new Properties(); 
48.    private List<String> l = new ArrayList<String>(); 
49. 
50.    public void saveUser() { 
51.        System.out.println("Set集合注入"); 
52.        for (String str : s) { 
53.            System.out.println(str); 
54.        } 
55. 
56.        System.out.println("------------------------------"); 
57.        System.out.println("Map集合注入"); 
58.        for (String str : m.values()) { 
59.            System.out.println(str); 
60.        } 
61. 
62.        System.out.println("------------------------------"); 
63.        System.out.println("Properties属性集合注入"); 
64.        for (Object str : p.values()) { 
65.            System.out.println(str); 
66.        } 
67. 
68.        System.out.println("------------------------------"); 
69.        System.out.println("List集合注入"); 
70.        for (String str : l) { 
71.            System.out.println(str); 
72.        } 
73.    } 
74.} 

要注意的是:这些集合属性也必须要有对应的setter方法



Xml代码 
01.<?xml version="1.0" encoding="UTF-8"?> 
02.<beans xmlns="http://www.springframework.org/schema/beans" 
03.    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" 
04.    xsi:schemaLocation="http://www.springframework.org/schema/beans   
05.           http://www.springframework.org/schema/beans/spring-beans-2.5.xsd  
06.           http://www.springframework.org/schema/context  
07.           http://www.springframework.org/schema/context/spring-context-2.5.xsd"> 
08.    <context:annotation-config /> 
09. 
10.    <bean id="userservice" class="com.test.UserServiceImplement"> 
11.        <property name="s"> 
12.            <set> 
13.                <value>SetValue1</value> 
14.                <value>SetValue2</value> 
15.                <value>SetValue3</value> 
16.            </set> 
17.        </property> 
18. 
19.        <property name="m"> 
20.            <map> 
21.                <entry key="MapKey1" value="MapValue1"></entry> 
22.                <entry key="MapKey2" value="MapValue2"></entry> 
23.                <entry key="MapKey3" value="MapValue3"></entry> 
24.            </map> 
25.        </property> 
26. 
27.        <property name="p"> 
28.            <props> 
29.                <prop key="PropertiesKey1">PropertiesValue1</prop> 
30.                <prop key="PropertiesKey2">PropertiesValue2</prop> 
31.                <prop key="PropertiesKey3">PropertiesValue3</prop> 
32.            </props> 
33.        </property> 
34. 
35.        <property name="l"> 
36.            <list> 
37.                <value>ListValue1</value> 
38.                <value>ListValue2</value> 
39.                <value>ListValue3</value> 
40.            </list> 
41.        </property> 
42.    </bean> 
43.</beans> 



[xml] view plaincopy
01.<?xml version="1.0" encoding="UTF-8"?> 
02.<beans xmlns="http://www.springframework.org/schema/beans" 
03.    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" 
04.    xsi:schemaLocation="http://www.springframework.org/schema/beans  
05.           http://www.springframework.org/schema/beans/spring-beans-2.5.xsd 
06.           http://www.springframework.org/schema/context 
07.           http://www.springframework.org/schema/context/spring-context-2.5.xsd"> 
08.    <context:annotation-config /> 
09. 
10.    <bean id="userservice" class="com.test.UserServiceImplement"> 
11.        <property name="s"> 
12.            <set> 
13.                <value>SetValue1</value> 
14.                <value>SetValue2</value> 
15.                <value>SetValue3</value> 
16.            </set> 
17.        </property> 
18. 
19.        <property name="m"> 
20.            <map> 
21.                <entry key="MapKey1" value="MapValue1"></entry> 
22.                <entry key="MapKey2" value="MapValue2"></entry> 
23.                <entry key="MapKey3" value="MapValue3"></entry> 
24.            </map> 
25.        </property> 
26. 
27.        <property name="p"> 
28.            <props> 
29.                <prop key="PropertiesKey1">PropertiesValue1</prop> 
30.                <prop key="PropertiesKey2">PropertiesValue2</prop> 
31.                <prop key="PropertiesKey3">PropertiesValue3</prop> 
32.            </props> 
33.        </property> 
34. 
35.        <property name="l"> 
36.            <list> 
37.                <value>ListValue1</value> 
38.                <value>ListValue2</value> 
39.                <value>ListValue3</value> 
40.            </list> 
41.        </property> 
42.    </bean> 
43.</beans> 

测试类:



Java代码 
01.package com.test;  
02. 
03.import org.springframework.context.ApplicationContext;  
04.import org.springframework.context.support.ClassPathXmlApplicationContext;  
05. 
06.public class Test {  
07. 
08.    public static void main(String[] args) {  
09.        ApplicationContext ctx = new ClassPathXmlApplicationContext(  
10.                "com/test/bean.xml");  
11.        IUserService us = (IUserService) ctx.getBean("userservice");  
12.        us.saveUser();  
13.    }  
14.} 



[java] view plaincopy
01.package com.test; 
02. 
03.import org.springframework.context.ApplicationContext; 
04.import org.springframework.context.support.ClassPathXmlApplicationContext; 
05. 
06.public class Test { 
07. 
08.    public static void main(String[] args) { 
09.        ApplicationContext ctx = new ClassPathXmlApplicationContext( 
10.                "com/test/bean.xml"); 
11.        IUserService us = (IUserService) ctx.getBean("userservice"); 
12.        us.saveUser(); 
13.    } 
14.} 
------------------------------------------------------------------
http://blog.csdn.net/eyeooo/article/details/7452997
分享到:
评论

相关推荐

    spring-集合注入、自定义转换器

    在Spring框架中,集合注入和自定义转换器是两个重要的概念,它们对于应用程序的灵活性和扩展性至关重要。这里,我们将深入探讨这两个主题,并通过实例代码来理解它们。 **集合注入** 集合注入允许我们在Spring配置...

    第四章 Spring4 注入参数

    Spring4对注入参数的支持更加完善,本章将深入探讨Spring4中的参数注入机制,包括基本类型注入、对象注入、集合类型注入以及如何通过注解实现这些功能。 一、基本类型注入 Spring4允许我们将基本数据类型(如int、...

    spring集合属性

    综上所述,Spring集合属性是Spring框架中一个强大的特性,它允许我们灵活地配置和管理bean的集合类型属性,极大地提高了应用的可配置性和可扩展性。通过深入理解并熟练运用这个特性,我们可以更高效地构建和管理...

    Spring对集合的装配(各种集合类型的属性的注入方式)

    首先,我们来了解Spring支持的集合注入方式: 1. **基于XML的配置**: 在Spring的XML配置文件中,可以使用`&lt;list&gt;`, `&lt;set&gt;`, `&lt;map&gt;`和`&lt;props&gt;`元素来指定集合的元素。例如,要注入一个List,可以这样写: ```...

    Springioc注入Demo

    5. **属性注入**:除了基本类型的属性外,Spring还能处理复杂类型的属性注入,如集合(List、Set、Map等)、自定义对象等。对于集合,可以通过`@Resource`或`@Autowired`注解配合`@Value`来注入值,对于自定义对象,...

    spring 设值注入

    设值注入不仅限于字符串,还可以注入其他类型的值,如基本类型、集合、其他bean引用等。例如,你可以注入一个列表: ```xml &lt;value&gt;1 &lt;value&gt;2 &lt;value&gt;3 ``` 或者,使用SpEL(Spring Expression ...

    spring 普通属性注入

    2. **XML中的Map集合注入** 当我们需要注入一个Map时,Spring提供了特殊的`&lt;map&gt;`标签。不同于其他标签,`&lt;entry&gt;`子标签用于定义键值对: ```xml ``` 在这个例子中,`myBean`的`myMap`属性...

    第五章 Spring4 自动装配、方法注入

    此外,Spring4还支持对集合类型的自动装配,如List、Set、Map等。 为了更好地实践这些概念,我们可以查看压缩包中的Spring0501文件,这可能包含了示例代码或教程资源。通过实际操作和调试,你可以更深入地理解和...

    Spring中集合类型的装配

    在Spring框架中,集合类型的装配是一项重要的功能,它允许我们把多个同类型的bean注入到一个集合对象中,如List、Set、Map等。这在处理依赖关系时非常有用,特别是当我们需要管理一组相似对象或者需要根据配置动态...

    java Spring DI依赖注入.rar

    Spring的依赖注入不仅限于bean之间的关系,还可以用于注入集合类型,如List、Set、Map等,甚至可以处理复杂类型的依赖注入,如接口类型的多实现。 在`chapter8`这个文件夹中,可能包含了关于Spring依赖注入的深入...

    Spring配置文件集合

    9. `applicationContext.xml`: 这是Spring容器的主配置文件,用于定义Bean的实例化、依赖注入、bean之间的关系等。它是Spring应用上下文的基础,包含了所有业务对象和服务的配置。 通过这些配置文件的组合,我们...

    day38 14-Spring的Bean的属性的注入:集合属性的注入

    对于更复杂的集合注入,比如Map类型,我们可以使用以下XML配置: ```xml ``` 在Java配置中,Map的注入方式类似,只是需要创建一个Map实例并填充键值对。 另外,Spring还提供了`@Indexed`注解,用于...

    Spring_Spring_教程8_注入_复杂类型的注入

    本教程将专注于Spring中的复杂类型注入,包括集合、自定义类以及接口实现的注入。 一、依赖注入的基本概念 依赖注入是Spring的核心特性之一,其基本思想是,一个对象不应该负责查找它的依赖,而应该由外部容器(如...

    Java反射、泛型和注解实战之Spring核心注入IOC的实现

    在本实战项目中,我们将深入探讨如何利用这些特性实现一个类似Spring框架的核心注入机制,即控制反转(Inversion of Control,简称IOC)。以下是关于这三个主题的详细讲解以及在Spring中的应用。 1. Java反射: ...

    Spring - -setter方式 向bean中注入各种类型的值

    4. **集合类型的注入**:对于List、Set、Map等集合类型,Spring可以批量注入多个值。在XML配置中,你可以使用`&lt;list&gt;`、`&lt;set&gt;`或`&lt;map&gt;`标签来定义这些集合,并提供多个子元素。在Java配置中,可以使用`@Autowired`...

    spring开发文档集合

    Spring开发文档集合是一个宝贵的资源,包含了关于Spring框架的多种学习材料。这个压缩包中的文档旨在帮助开发者深入理解和熟练使用Spring框架,它是一个广泛应用于Java企业级应用的开源框架。Spring以其依赖注入...

    spring集合hibernate多数据切换

    综上所述,"spring集合hibernate多数据切换"这个知识点涉及到Spring框架的IoC容器、AOP、事务管理,以及Hibernate的SessionFactory配置等多个方面。通过理解并实践这些内容,开发者能够构建出更灵活、可扩展的企业级...

    spring各种属性的注入

    本文档主要介绍了在Spring配置文件中如何进行各种类型的属性注入,包括基本类型、集合类型以及Bean之间的引用等。下面将逐一展开介绍每种注入方式的细节及其应用场景。 #### 基本类型属性注入 基本类型的属性注入...

    Spring学习资料集合

    这份"Spring学习资料集合"包含了丰富的文档资源,旨在帮助开发者深入理解和掌握Spring的核心概念与使用技巧。 首先,Spring框架的核心特性包括依赖注入(Dependency Injection,DI)和面向切面编程(Aspect-...

    spring-framework-4.3.0 jar包集合

    1. **依赖注入(Dependency Injection, DI)**:Spring的核心特性之一是依赖注入,它使得组件间的耦合度大大降低。通过容器管理对象的生命周期和依赖关系,开发者可以更加专注于业务逻辑,而不是如何创建和管理对象...

Global site tag (gtag.js) - Google Analytics