• spring集合类型的setter注入的一个简单例子



    在项目中我们有时候会为集合类型设定一些默认的值,使用spring后,我们可以通过配置文件的配置,用setter方式为对象的集合属性提供一些默认值,下面就是一个简单的例子。
    首先我们创建了一个名为Collection的类,这个类中包含四中基本的集合属性,实现属性的set方法和覆盖toString()方法。代码如下:

    package Domain;
    import java.util.Arrays;
    import java.util.List;
    import java.util.Map;
    import java.util.Set;
    
    public class Collection {
    
    private Set<String> set;
    private List<String> list;
    private Map<String,String> map;
    private String[] array;
    public void setSet(Set<String> set) {
    	this.set = set;
    }
    public void setList(List<String> list) {
    	this.list = list;
    }
    public void setMap(Map<String, String> map) {
    	this.map = map;
    }
    public void setArray(String[] array) {
    	this.array = array;
    }
    @Override
    public String toString() {
    	return "Collection [set=" + set + ", list=" + list + ", map=" + map + ", array=" + Arrays.toString(array) + "]";
    }
    
    }
    

    在spring配置文件中,创建相关bean和属性的注入:

    <bean id="collection" class="Domain.Collection" scope="singleton">
    <!-- Set集合的属性注入 -->
    <property name="set">
        <set>
            <value>set1</value>
        	<value>set2</value>
       		<value>set3</value>
        </set>      
    </property>
    <!--List集合的属性注入  -->
    <property name="list">
        <list>
            <value>list1</value>
        	<value>list2</value>
        	<value>list3</value>
        </list>
    </property>
    <!--数组的注入  -->
    <property name="array">
        <list>
            <value>array1</value>
        	<value>array1</value>
        	<value>array1</value>
        </list>
       
    </property>
    <!--Map集合的属性注入  -->
    <property name="map">
        <map>
            <entry key="key1" value="map1"></entry>
            <entry key="key2" value="map2"></entry>
            <entry key="key3" value="map3"></entry>
        </map>
    </property>
    </bean>
    

    Junit测试:

    package Test;
    
    import static org.junit.Assert.*;
    
    import org.junit.Test;
    import org.junit.runner.RunWith;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.context.ApplicationContext;
    import org.springframework.test.context.ContextConfiguration;
    import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
    
    import Domain.Collection;
    
    	/** 
    	* @ClassName: SpringCollectionTest 
    	* @Description: TODO(这里用一句话描述这个类的作用) 
    	*  
    	*/
    @RunWith(SpringJUnit4ClassRunner.class)
    @ContextConfiguration("classpath:resource/applicationContext.xml")
    public class SpringCollectionTest {
    @Autowired
    private ApplicationContext act;
    
    @Test
    public void test() {
    	Collection collect=(Collection) act.getBean("collection");
    	System.out.println(	collect.toString());
    
    	}
    
    }
    

    最后测试打印出的结果如下:

    Collection [set=[set1, set2, set3], list=[list1, list2, list3], map={key1=map1, key2=map2, key3=map3}, array=[array1, array1, array1]]
    

    如此看出通过spring容器获得对象的集合属性得到了默认的属性值。

  • 相关阅读:
    TCP同步与异步
    C#委托与事件
    线程
    C# 多人聊天程序
    vs启动错误
    记住我的痛苦
    C#命名空间与类名的冲突
    C#调试类
    linux ifconfig命令参数及用法详解linux查看配置网卡命令
    B/S架构
  • 原文地址:https://www.cnblogs.com/ITer-jack/p/5608733.html
Copyright © 2020-2023  润新知