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