在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