在項目中咱們有時候會爲集合類型設定一些默認的值,使用spring後,咱們能夠經過配置文件的配置,用setter方式爲對象的集合屬性提供一些默認值,下面就是一個簡單的例子。
首先咱們建立了一個名爲Collection的類,這個類中包含四中基本的集合屬性,實現屬性的set方法和覆蓋toString()方法。代碼以下:java
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和屬性的注入:spring
<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()); } }
最後測試打印出的結果以下:app
Collection [set=[set1, set2, set3], list=[list1, list2, list3], map={key1=map1, key2=map2, key3=map3}, array=[array1, array1, array1]]
如此看出經過spring容器得到對象的集合屬性獲得了默認的屬性值。ide