Spring学习笔记04--spring如何装配集合类型的属性

来源:互联网 发布:linux端口号范围 编辑:程序博客网 时间:2024/05/29 03:21

spring如何装配集合类型的属性?


要注入的集合属性有很多,这里举几个常见的例子:
list、 set 、map 和 properties的注入:
下面这个类有如下四个属性:

package cn.itcast.service.impl;import java.util.ArrayList;import java.util.HashMap;import java.util.HashSet;import java.util.List;import java.util.Map;import java.util.Properties;import java.util.Set;import cn.itcast.dao.PersonDao;import cn.itcast.service.IPersonService;public class PersonServiceBean implements IPersonService {    private PersonDao personDao;    private String name;    private List<String> list = new ArrayList<String>();    private Set<String> set = new HashSet<String>();    private Properties prop = new Properties();    private Map<String,String> map = new HashMap<String,String>();    public void setPersonDao(PersonDao personDao) {        this.personDao = personDao;    }    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }    public List<String> getList() {        return list;    }    public void setList(List<String> list) {        this.list = list;    }    public Set<String> getSet() {        return set;    }    public void setSet(Set<String> set) {        this.set = set;    }    public Properties getProp() {        return prop;    }    public void setProp(Properties prop) {        this.prop = prop;    }    public Map<String, String> getMap() {        return map;    }    public void setMap(Map<String, String> map) {        this.map = map;    }}

beans.xml配置文件:

<bean id="personService" class="cn.itcast.service.impl.PersonServiceBean" scope="prototype" init-method="init"   destroy-method="destroy">      <property name="set">         <set>            <value>value01</value>            <value>value02</value>            <value>value03</value>         </set>      </property>      <property name="list">         <list>            <value>list value 01</value>            <value>list value 02</value>            <value>list value 03</value>         </list>      </property>      <property name="prop">         <props>            <prop key="key 01">value 01</prop>            <prop key="key 02">value 02</prop>            <prop key="key 03">value 03</prop>         </props>      </property>      <property name="map">         <map>            <entry key="map key 01" value="map value 01"/>            <entry key="map key 02" value="map value 02"/>            <entry key="map key 03" value="map value 03"/>         </map>      </property>   </bean>

我们可以在测试方法中获取这些集合属性,并遍历,以测试是否成功注入:

@Test    public void instanceSpring(){        //初始化Spring容器        AbstractXmlApplicationContext ctx = new ClassPathXmlApplicationContext("beans.xml");        IPersonService personService = (IPersonService) ctx.getBean("personService");        System.out.println("=======set==========");        for (String value : personService.getSet()) {            System.out.println(value);        }        System.out.println("=======list==========");        for (String value : personService.getList()) {            System.out.println(value);        }        System.out.println("=======prop==========");        for (Object key : personService.getProp().keySet()) {            System.out.println("key:"+key+"="+personService.getProp().get(key));        }        System.out.println("=======map==========");        for (Entry<String, String> entry : personService.getMap().entrySet()) {            System.out.println(entry.getKey()+"= " +entry.getValue());        }        //ctx.close();    }

运行结果:
运行结果

0 0
原创粉丝点击