(5) Spring 如何装配 集合类 以及 【第二种 依赖注入 方式】使用 构造器 注入
2012-06-11 19:56
1016 查看
[java]
view plaincopyprint?
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 PersonServiceBeanimplements 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;
}
}
配置 Spring容器:
[html]
view plaincopyprint?
<?xmlversion="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">
<beanid="personService"class="cn.itm.service.impl.PersonServiceBean">
<propertyname="sets">
<set>
<value>第一个</value>
<value>第二个</value>
<value>第三个</value>
</set>
</property>
<propertyname="lists">
<list>
<value>第一个list</value>
<value>第二个list</value>
<value>第三个list</value>
</list>
</property>
<propertyname="properties">
<props>
<propkey="key1">value1</prop>
<propkey="key2">value2</prop>
<propkey="key3">value3</prop>
</props>
</property>
<propertyname="maps">
<map>
<entrykey="key1"value="value1"/>
<entrykey="key2"value="value2"/>
<entrykey="key3"value="value3"/>
</map>
</property>
</bean>
</beans>
二:使用 使用构造器注入
[java]
view plaincopyprint?
package cn.itm.service.impl;
import cn.itm.dao.PersonDao;
import cn.itm.service.PersonService;
public class PersonServiceBeanimplements 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);
}
}
[java]
view plaincopyprint?
package cn.itm.dao.impl;
import cn.itm.dao.PersonDao;
public class PersonDaoBeanimplements PersonDao {
public void add(){
System.out.println("执行PersonDaoBean的add方法。。。");
}
}
配置文件:
[html]
view plaincopyprint?
<?xmlversion="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">
<beanid="personDao"class="cn.itm.dao.impl.PersonDaoBean"></bean>
<beanid="personService"class="cn.itm.service.impl.PersonServiceBean">
<constructor-argindex="0"type="cn.itm.dao.PersonDao"ref="personDao"/>
<constructor-argindex="1"value="大家好。"></constructor-arg>
</bean>
</beans>
打印结果:
view plaincopyprint?
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 PersonServiceBeanimplements 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;
}
}
[java] view plaincopyprint? 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() ; } 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容器:
[html]
view plaincopyprint?
<?xmlversion="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">
<beanid="personService"class="cn.itm.service.impl.PersonServiceBean">
<propertyname="sets">
<set>
<value>第一个</value>
<value>第二个</value>
<value>第三个</value>
</set>
</property>
<propertyname="lists">
<list>
<value>第一个list</value>
<value>第二个list</value>
<value>第三个list</value>
</list>
</property>
<propertyname="properties">
<props>
<propkey="key1">value1</prop>
<propkey="key2">value2</prop>
<propkey="key3">value3</prop>
</props>
</property>
<propertyname="maps">
<map>
<entrykey="key1"value="value1"/>
<entrykey="key2"value="value2"/>
<entrykey="key3"value="value3"/>
</map>
</property>
</bean>
</beans>
[java] view plaincopyprint? 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 staticvoid setUpBeforeClass() throws Exception { } // 专门用来实例化 Spring 容器的。 @Test publicvoid 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 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)); } } }
二:使用 使用构造器注入
[java]
view plaincopyprint?
package cn.itm.service.impl;
import cn.itm.dao.PersonDao;
import cn.itm.service.PersonService;
public class PersonServiceBeanimplements 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);
}
}
[java] view plaincopyprint? package cn.itm.service; public interface PersonService { public void save(); } package cn.itm.service; public interface PersonService { public void save(); }
[java]
view plaincopyprint?
package cn.itm.dao.impl;
import cn.itm.dao.PersonDao;
public class PersonDaoBeanimplements PersonDao {
public void add(){
System.out.println("执行PersonDaoBean的add方法。。。");
}
}
[java] view plaincopyprint? package cn.itm.dao; public interface PersonDao { public abstractvoid add(); } package cn.itm.dao; public interface PersonDao { public abstract void add(); }
配置文件:
[html]
view plaincopyprint?
<?xmlversion="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">
<beanid="personDao"class="cn.itm.dao.impl.PersonDaoBean"></bean>
<beanid="personService"class="cn.itm.service.impl.PersonServiceBean">
<constructor-argindex="0"type="cn.itm.dao.PersonDao"ref="personDao"/>
<constructor-argindex="1"value="大家好。"></constructor-arg>
</bean>
</beans>
[java] view plaincopyprint? 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 staticvoid setUpBeforeClass() throws Exception { } // 专门用来实例化 Spring 容器的。 @Test publicvoid instanceSpring(){ ApplicationContext ctx = new ClassPathXmlApplicationContext("beans.xml"); PersonService personService = (PersonService) ctx.getBean("personService"); personService.save(); } } 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)
相关文章推荐
- (6) Spring 如何装配 集合类 以及 【第二种 依赖注入 方式】使用 构造器 注入
- spring ioc容器注入的集中方式,以及属性注入的集中依赖,继承,使用SPEL表达式,ioc容器的生命周期,bean的几种工厂方法配置方式,bean的自动装配
- spring 使用构造器方式依赖注入
- 在Spring中装配DAO以及两种依赖注入方式
- Spring学习之(四)依赖注入的几种装配方式
- Spring依赖注入——java项目中使用spring注解方式进行注入
- Spring-依赖注入之构造器方式注入
- (5) 编码剖析Spring装配基本属性的原理【附加:注入依赖对象的两种方式】
- 关于怎么解决从ajax传入的json参数注入到Controller的接收对象 以及如何在Spring Boot项目使用参数校验
- spring几种依赖注入方式以及ref-local/bean,factory-bean,factory-method区别联系
- Spring第六弹—-依赖注入之使用构造器注入与使用属性setter方法注入
- spring四种依赖注入方式 (set,构造器,工厂,注解 )
- spring依赖注入的好处以及三种注入的方式
- spring使用注解的方式注入和装配
- java线程中如何使用spring依赖注入
- Spring.net 控制反转(IOC)依赖注入(DI)的使用 以及Config文件的配置
- spring使用注解方式该如何在框架外获取注入?
- 使用Spring2.0的annotation方式进行依赖注入检查
- 深刻剖析spring三种注入方式以及使用注解的原理
- Spring学习之使用标签来标记资源(@Component、@Repository、 @Service和@Controller)以及使用方式(包含如何在jsp中使用)