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