Java:
1.8
javaMaven:
3
springSpringFramework版本以及各組件成員:
5.1.1.RELEASE
數組
- spring-context
- spring-core
- spring-beans
如今若是你想傳遞多個值,如 Java Collection 類型 List、Set、Map 和 Properties,應該怎麼作呢。爲了處理這種狀況,Spring 提供了四種類型的集合的配置元素,以下所示:this
元素 | 描述 |
---|---|
<list> |
它有助於關聯一組值,如注入一列值,容許重複。 |
<set> |
它有助於關聯一組值,但不能重複。 |
<map> |
它能夠用來注入名稱-值對的集合,其中名稱和值能夠是任何類型。 |
<props> |
它能夠用來注入名稱-值對的集合,其中名稱和值都是字符串類型。 |
你能夠使用
<list>
或<set>
來鏈接任何java.util.Collection
的實現或數組。code你會遇到兩種狀況:xml
- (a)傳遞集合中直接的值
- (b)傳遞一個 bean 的引用做爲集合的元素。
(a)
狀況)Bean - MyCollection.java
字符串
package noioo; import java.util.List; import java.util.Map; import java.util.Properties; import java.util.Set; public class MyCollection { private List myList; private Set mySet; private Map myMap; private Properties myProperties; // 如下是一堆getter/setter... public List getMyList() { return myList; } public Map getMyMap() { return myMap; } public Set getMySet() { return mySet; } public Properties getMyProperties() { return myProperties; } public void setMyList(List myList) { this.myList = myList; } public void setMyMap(Map myMap) { this.myMap = myMap; } public void setMySet(Set mySet) { this.mySet = mySet; } public void setMyProperties(Properties myProperties) { this.myProperties = myProperties; } }
配置文件 - spring-beans.xml
get
<?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="myCollection" class="noioo.MyCollection"> <property name="myList"> <list> <value>List_A</value> <value>List_B</value> <value>List_C</value> <value>List_D</value> </list> </property> <property name="myMap"> <map> <entry key="1" value="Map_A"/> <entry key="2" value="Map_B"/> <entry key="3" value="Map_C"/> </map> </property> <property name="myProperties"> <props> <prop key="1">Props_A</prop> <prop key="2">Props_B</prop> <prop key="3">Props_C</prop> </props> </property> <property name="mySet"> <set> <value>Set_A</value> <value>Set_B</value> <value>Set_C</value> </set> </property> </bean> </beans>
執行者 - Runner.java
it
package noioo; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; public class Runner { public static void main(String[] args){ ApplicationContext context = new ClassPathXmlApplicationContext("spring-beans.xml"); MyCollection myCollection = (MyCollection)context.getBean("myCollection"); System.out.println(myCollection.getMyList()); System.out.println(myCollection.getMySet()); System.out.println(myCollection.getMyProperties()); System.out.println(myCollection.getMyMap()); } }
[List_A, List_B, List_C, List_D] [Set_A, Set_B, Set_C] {3=Props_C, 2=Props_B, 1=Props_A} {1=Map_A, 2=Map_B, 3=Map_C} Process finished with exit code 0