Spring入门之bean属性注入集合

30 篇文章 0 订阅
6 篇文章 0 订阅
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">970624</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、数组、属性集合的注入方法配置文件
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值