Spring中的bean的屬性值有時候包含一些集合類型的屬性值,注入屬性值的方式和注入一些基本的屬性值不一樣,他們需要使用專門的方式來注入
常用的集合類型包括: Map、Set、List、數組、屬性集合
執行個體代碼:
//person類
public class Person {
private String name;
private Integer age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
}
//測試bean類
public class AllSetBean {
private String[] names;
private List<Person> personlist;
private Set<Person> personset;
private Map<Integer, Person> personmap;
private Properties personprop;
public String[] getNames() {
return names;
}
public void setNames(String[] names) {
this.names = names;
}
public List<Person> getPersonlist() {
return personlist;
}
public void setPersonlist(List<Person> personlist) {
this.personlist = personlist;
}
public Set<Person> getPersonset() {
return personset;
}
public void setPersonset(Set<Person> personset) {
this.personset = personset;
}
public Map<Integer, Person> getPersonmap() {
return personmap;
}
public void setPersonmap(Map<Integer, Person> personmap) {
this.personmap = personmap;
}
public Properties getPersonprop() {
return personprop;
}
public void setPersonprop(Properties personprop) {
this.personprop = personprop;
}
}
//beans.xml配置檔案
<bean id="person1" class="org.spring.IocSet.Person">
<property name="name" value="成兮" />
<property name="age" value="20" />
</bean>
<bean id="person2" class="org.spring.IocSet.Person">
<property name="name" value="緣分五月" />
<property name="age" value="20" />
</bean>
<bean id="allSet" class="org.spring.IocSet.AllSetBean">
<!-- 注入數組 -->
<property name="names">
<list>
<value>成兮</value>
<value>緣分五月</value>
</list>
</property>
<!-- 注入List集合 -->
<property name="personlist">
<list>
<ref bean="person1" />
<ref bean="person2" />
</list>
</property>
<!-- 注入Set集合 -->
<property name="personset">
<set>
<ref bean="person1" />
<ref bean="person2" />
</set>
</property>
<!-- 注入Map集合 -->
<property name="personmap">
<map>
<entry key="1" value-ref="person1" />
<entry key="2" value-ref="person2" />
</map>
</property>
<!-- 注入屬性值 -->
<property name="personprop">
<props>
<prop key="username">chengxi</prop>
<prop key="password"></prop>
</props>
</property>
</bean>
//測試主程式
public class TestMain {
public static void main(String[] args){
ApplicationContext context = new ClassPathXmlApplicationContext("beans.xml");
AllSetBean bean = context.getBean("allSet",AllSetBean.class);
//測試數組
String[] names = bean.getNames();
System.out.println("測試數組");
for(String name: names){
System.out.println("name->"+name);
}
//測試List
List<Person> personl = bean.getPersonlist();
System.out.println("測試List");
for(Person person: personl){
System.out.println("person.name->"+person.getName()+"\tperson.age->"+person.getAge());
}
//測試Set
Set<Person> persons = bean.getPersonset();
System.out.println("測試Set");
for(Person person: persons){
System.out.println("person.name->"+person.getName()+"\tperson.age->"+person.getAge());
}
//測試Map
Map<Integer,Person> personm = bean.getPersonmap();
System.out.println("測試Map");
Iterator it = personm.keySet().iterator();
while(it.hasNext()){
Integer key = (Integer) it.next();
Person person = personm.get(key);
System.out.println("key->"+key+"\tperson.name->"+person.getName()+"\tperson.age->"+person.getAge());
}
//Property屬性值測試
Properties personprop = bean.getPersonprop();
System.out.println("測試Properties屬性");
for(Entry<Object,Object> entry:personprop.entrySet()){
System.out.println(entry.getKey().toString()+" "+entry.getValue().toString());
}
System.out.println("*****通過Enumeration取出*****");
Enumeration en= personprop.keys();
while(en.hasMoreElements()){
String key=(String) en.nextElement();
System.out.println(key+" "+personprop.getProperty(key));
}
}
}
文檔轉載自: Spring中使用Map、Set、List、數組、屬性集合的注入方法配置檔案