(6) Spring 如何装配 集合类 以及 【第二种 依赖注入 方式】使用 构造器 注入
2012-06-09 22:19
986 查看
package cn.itm.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.itm.service.PersonService; public class PersonServiceBean implements PersonService{ 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 Map<String, String> getMaps() { return maps; } public void setMaps(Map<String, String> maps) { this.maps = maps; } public Properties getProperties() { return properties; } public void setProperties(Properties properties) { this.properties = properties; } public List<String> getLists() { return lists; } public void setLists(List<String> lists) { this.lists = lists; } public Set<String> getSets() { return sets; } public void setSets(Set<String> sets) { this.sets = sets; } }
import java.util.List; import java.util.Map; import java.util.Properties; import java.util.Set; public interface PersonService { public Set<String> getSets(); public List<String> getLists(); public Properties getProperties(); public Map<String, String> getMaps() ; }
配置 Spring容器:
<?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="personService" class="cn.itm.service.impl.PersonServiceBean"> <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="key1" value="value1"/> <entry key="key2" value="value2"/> <entry key="key3" value="value3"/> </map> </property> </bean> </beans>
测试类:
package junit.test; import org.junit.BeforeClass; import org.junit.Test; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; import cn.itm.service.PersonService; public class SpringTest { @BeforeClass public static void setUpBeforeClass() throws Exception { } // 专门用来实例化 Spring 容器的。 @Test public void instanceSpring(){ ApplicationContext ctx = new ClassPathXmlApplicationContext("beans.xml"); PersonService personService = (PersonService) ctx.getBean("personService"); for(String value: personService.getSets()){ System.out.println(value); } System.out.println("-------------------------------"); for(String value: personService.getLists()){ System.out.println(value); } System.out.println("-------------Properties()------------------"); for(Object key: personService.getProperties().keySet()){ System.out.println(key + "=" + personService.getProperties().getProperty((String)key)); } System.out.println("-------------map------------------"); for(Object key: personService.getMaps().keySet()){ System.out.println(key + "=" + personService.getMaps().get(key)); } } }
二:使用 使用构造器注入
package cn.itm.service.impl; import cn.itm.dao.PersonDao; import cn.itm.service.PersonService; public class PersonServiceBean implements PersonService{ private PersonDao personDao; private String name; public PersonServiceBean(PersonDao personDao, String name) { this.personDao = personDao; this.name = name; } public PersonDao getPersonDao() { return personDao; } public void setPersonDao(PersonDao personDao) { this.personDao = personDao; } public String getName() { return name; } public void setName(String name) { this.name = name; } public void save(){ personDao.add(); System.out.println(name); } }
![](http://my.csdn.net/uploads/201206/09/1339251563_1425.jpg)
package cn.itm.service; public interface PersonService { public void save(); }
package cn.itm.dao.impl; import cn.itm.dao.PersonDao; public class PersonDaoBean implements PersonDao { public void add(){ System.out.println("执行PersonDaoBean的add方法。。。"); } }
package cn.itm.dao; public interface PersonDao { public abstract void add(); }
配置文件:
<?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="personDao" class="cn.itm.dao.impl.PersonDaoBean"></bean> <bean id="personService" class="cn.itm.service.impl.PersonServiceBean"> <constructor-arg index="0" type="cn.itm.dao.PersonDao" ref="personDao"/> <constructor-arg index="1" value="大家好。"></constructor-arg> </bean> </beans>
测试类:
package junit.test; import org.junit.BeforeClass; import org.junit.Test; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; import cn.itm.service.PersonService; public class SpringTest { @BeforeClass public static void setUpBeforeClass() throws Exception { } // 专门用来实例化 Spring 容器的。 @Test public void instanceSpring(){ ApplicationContext ctx = new ClassPathXmlApplicationContext("beans.xml"); PersonService personService = (PersonService) ctx.getBean("personService"); personService.save(); } }
打印结果:
![](http://my.csdn.net/uploads/201206/09/1339251718_6131.jpg)
相关文章推荐
- (5) Spring 如何装配 集合类 以及 【第二种 依赖注入 方式】使用 构造器 注入
- spring ioc容器注入的集中方式,以及属性注入的集中依赖,继承,使用SPEL表达式,ioc容器的生命周期,bean的几种工厂方法配置方式,bean的自动装配
- spring 使用构造器方式依赖注入
- 在Spring中装配DAO以及两种依赖注入方式
- (5) 编码剖析Spring装配基本属性的原理【附加:注入依赖对象的两种方式】
- Spring的两种依赖注入方式:setter方法注入与构造方法注入 以及两种方式的区别!
- spring4笔记----使用装配注入合作者Bean的三种方式
- 使用Spring2.0的annotation方式进行依赖注入检查
- 使用Spring(三)依赖注入DI(Setter DI,构造器注入)
- spring IOC(控制反转)和DI(依赖注入)以及三种依赖注入方式的比较
- Spring依赖注入——手工装配(XML方式)
- 【Spring】使用XML进行Bean装配与依赖注入
- 使用spring注解方式实现组件的声明,并且用注解注入方式解决依赖关系
- Spring学习之(四)依赖注入的几种装配方式
- Spring依赖注入——java项目中使用spring注解方式进行注入
- Spring-依赖注入之构造器方式注入
- spring几种依赖注入方式以及ref-local/bean,factory-bean,factory-method区别联系
- 关于怎么解决从ajax传入的json参数注入到Controller的接收对象 以及如何在Spring Boot项目使用参数校验
- spring四种依赖注入方式 (set,构造器,工厂,注解 )
- Spring第六弹—-依赖注入之使用构造器注入与使用属性setter方法注入