天天看點

Spring入門之bean屬性注入集合

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、數組、屬性集合的注入方法配置檔案