Spring點滴八:Spring注入集合

       在Spring中咱們經過value屬性來配置基本數據類型,經過標籤的ref屬性來配置對象的引用。這兩種狀況只能給bean傳遞一個值,那麼如何傳遞多個值呢?Spring提供了四種Collection類型集合配置元素。java

元素 描述
<List> 它有助於連線,如注入一列值,容許重複
<set> 它有助於連線一組值,但不能重複
<map> 它能夠用來注入名稱-值對的集合,其中名稱和值能夠是任何類型
<props> 它能夠用來注入名稱-值對的集合,其中名稱和值都是字符串類型

 Spring.xmlspring

<?xml version="1.0" encoding="UTF-8"?>
<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.xsd">

    <bean id="collection" class="com.test.spring.Collection">
       <property name="list">
           <list>
              <value>張三</value>
              <value>李四</value>
              <value>王五</value>
           </list>
       </property>
       <property name="set">
           <set>
           <value>張三</value>
           <value>李四</value>
           <value>王五</value>
           </set>
       </property>
       <property name="map">
         <map>
            <entry key="1" value="張三"></entry>
            <entry key="2" value="李四"></entry>
            <entry key="3" value="王五"></entry>
         </map>
       </property>
       <property name="proper">
          <props>
              <prop key="1">張三</prop>
              <prop key="2">李四</prop>    
              <prop key="3">王五</prop>             
          </props>
       </property>
    </bean>
</beans>

Java代碼:app

package com.test.spring;

import java.util.List;
import java.util.Map;
import java.util.Properties;
import java.util.Set;

public class Collection {
    private List list;
    private Set set;
    private Map map;
    private Properties proper;

    public Properties getProper() {
        return proper;
    }

    public void setProper(Properties proper) {
        this.proper = proper;
    }

    public List getList() {
        return list;
    }

    public void setList(List list) {
        this.list = list;
    }

    public Set getSet() {
        return set;
    }

    public void setSet(Set set) {
        this.set = set;
    }

    public Map getMap() {
        return map;
    }

    public void setMap(Map map) {
        this.map = map;
    }
}

測試:測試

package com.test.spring;

import org.junit.Before;
import org.junit.Test;
import org.springframework.context.support.AbstractApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class T {
    AbstractApplicationContext applicationcontext=null;
    @Before
    public void before() {
        System.out.println("》》》Spring ApplicationContext容器開始初始化了......");
        applicationcontext= new ClassPathXmlApplicationContext(new String[]{"test1-service.xml"});
        System.out.println("》》》Spring ApplicationContext容器初始化完畢了......");
    }
    @Test
    public void  test() {
        collection=applicationcontext.getBean(Collection.class);
        System.out.println(collection.getList());
        System.out.println(collection.getSet());
        System.out.println(collection.getMap());
        System.out.println(collection.getProper());
    }
}

測試結果:this

》》》Spring ApplicationContext容器開始初始化了......
2017-03-19 15:49:39  INFO:ClassPathXmlApplicationContext-Refreshing org.springframework.context.support.ClassPathXmlApplicationContext@5facc36f: startup date [Sun Mar 19 15:49:39 CST 2017]; root of context hierarchy
2017-03-19 15:49:40  INFO:XmlBeanDefinitionReader-Loading XML bean definitions from class path resource [test1-service.xml]
》》》Spring ApplicationContext容器初始化完畢了......
[張三, 李四, 王五]
[張三, 李四, 王五]
{1=張三, 2=李四, 3=王五}
{3=王五, 2=李四, 1=張三}spa

相關文章
相關標籤/搜索