集合类型的装配
private Set<String> sets = new HashSet<String>();
private List<String> lists = new ArrayList<String>();
private Properties properties = new Properties();
private Map<String, String> maps = new HashMap<String, String>();
....//这里省略属性的getter和setter方法
步骤:
(1).修改PersionServiceBean.java ,给它加上一些集合类属性
package cn.com.xinli.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 org.apache.log4j.Logger; import cn.com.xinli.dao.PersionDao; import cn.com.xinli.service.PersionSevice; public class PersionServiceBean implements PersionSevice { Logger log=Logger.getLogger(PersionServiceBean.class); private PersionDao persionDao; private String name; private int age; private Set<String> sets = new HashSet<String>(); private List<String> lists = new ArrayList<String>(); private Properties properties = new Properties(); private Map<String, String> maps = new HashMap<String, String>(); public Set<String> getSets() { return sets; } public void setSets(Set<String> sets) { this.sets = sets; } public List<String> getLists() { return lists; } public void setLists(List<String> lists) { this.lists = lists; } public Properties getProperties() { return properties; } public void setProperties(Properties properties) { this.properties = properties; } public Map<String, String> getMaps() { return maps; } public void setMaps(Map<String, String> maps) { this.maps = maps; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } public PersionDao getPersionDao() { return persionDao; } public void setPersionDao(PersionDao persionDao) { this.persionDao = persionDao; } public void init() { log.info("初始化资源"); } public PersionServiceBean() { log.info("我被实例化了"); } public void save() { log.info("name:"+name); log.info("age:"+age); this.persionDao.add(); } public void destory() { log.info("释放资源"); } }
(2) 配置beans.xml 给结合属性配置一些需要注入的值
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd"> <bean id="persionDao" class="cn.com.xinli.dao.impl.PersionDaoBean"></bean> <bean id="persionServiceBean" class="cn.com.xinli.service.impl.PersionServiceBean" init-method="init" destroy-method="destory"> <property name="persionDao" ref="persionDao"/> <property name="name" value="huxl"/> <property name="age" value="26"/> <property name="sets"> <set> <value>第一个</value> <value>第二个</value> <value>第三个</value> </set> </property> <property name="lists"> <list> <value>第一个list元素</value> <value>第二个list元素</value> <value>第三个list元素</value> </list> </property> <property name="properties"> <props> <prop key="key1">value1</prop> <prop key="key2">value2</prop> <prop key="key3">value3</prop> </props> </property> <property name="maps"> <map> <entry key="key-1" value="value-1"/> <entry key="key-2" value="value-2"/> <entry key="key-3" value="value-3"/> </map> </property> </bean> <!-- <bean id="persionServiceBean2" class="cn.com.xinli.service.impl.PersionServiceBeanFactory" factory-method="createPersionServiceBean"/> <bean id="PersionServiceBeanFactory" class="cn.com.xinli.service.impl.PersionServiceBeanFactory"></bean> <bean id="persionServiceBean3" factory-bean="PersionServiceBeanFactory" factory-method="createPersionServiceBean2"></bean> --> </beans>
(3) 测试:
ClassPathXmlApplicationContext ctx = new ClassPathXmlApplicationContext("beans.xml"); PersionSevice ps=(PersionSevice)ctx.getBean("persionServiceBean"); ps.save(); System.out.println("========set==========="); for(String value : ps.getSets()){ System.out.println(value); } System.out.println("========list==========="); for(String value : ps.getLists()){ System.out.println(value); } System.out.println("========properties==========="); for(Object key : ps.getProperties().keySet()){ System.out.println(key+"="+ ps.getProperties().getProperty((String)key)); } System.out.println("========map==========="); for(String key : ps.getMaps().keySet()){ System.out.println(key+"="+ ps.getMaps().get(key)); }
(5) 结果
2009-05-30 17:52:17,906 INFO (PersionServiceBean.java:91) - 我被实例化了2009-05-30 17:52:18,046 INFO (PersionServiceBean.java:87) - 初始化资源2009-05-30 17:52:18,062 INFO (PersionServiceBean.java:96) - name:huxl2009-05-30 17:52:18,062 INFO (PersionServiceBean.java:97) - age:262009-05-30 17:52:18,062 INFO (PersionDaoBean.java:15) - 执行了PersionDaoBean中的add()方法========set===========第一个第二个第三个========list===========第一个list元素第二个list元素第三个list元素========properties===========key3=value3key2=value2key1=value1========map===========key-1=value-1key-2=value-2key-3=value-3
