spring IOC
2016-01-21 19:52
561 查看
1. xml方式实现IOC
beans.xml
PersonDao.java
PersonService.java
PersonServiceBean.java
test1.java
2. 注释方式实现IOC
beans.xml
PersonDao.java
PersonService.java
PersonServiceBean.java
test1.java
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="id_personDao" class="cn.sjtu.service.PersonDao" /> <!-- scope="prototype" lazy-init="true --> <bean id="id_personService" class="cn.sjtu.service.PersonServiceBean" init-method="init" destroy-method="destroy"> <property name="personDao" ref="id_personDao"></property> <constructor-arg index="0" ref="id_personDao"></constructor-arg> <constructor-arg index="1" value="chen"></constructor-arg> <property name="sets"> <set> <value>"AA"</value> <value>"BB"</value> <value>"CC"</value> </set> </property> <property name="lists"> <set> <value>"AAA"</value> <value>"BBB"</value> <value>"CCC"</value> </set> </property> <property name="maps"> <map> <entry key="key1" value="value1"></entry> <entry key="key2" value="value2"></entry> <entry key="key3" value="value3"></entry> </map> </property> </bean> </beans>
PersonDao.java
package cn.sjtu.service; public class PersonDao { public void add() { System.out.println("this is PersonDao add method"); } }
PersonService.java
package cn.sjtu.service; import java.util.List; import java.util.Map; import java.util.Set; public interface PersonService { public abstract void save(); public abstract void add(); public abstract Set<String> getSets(); public abstract List<String> getLists(); public abstract Map<String, String> getMaps(); }
PersonServiceBean.java
package cn.sjtu.service; import java.util.ArrayList; import java.util.HashMap; import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Set; public class PersonServiceBean implements PersonService { private String name; private PersonDao personDao; private Set<String> sets = new HashSet<String>(); private List<String> lists = new ArrayList<String>(); 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 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; } public PersonDao getPersonDao() { return personDao; } public void setPersonDao(PersonDao personDao) { this.personDao = personDao; } @Override public void save() { System.out.println("this is save method"); } public PersonServiceBean() { System.out.println("instanced"); } public PersonServiceBean(PersonDao personDao, String name) { System.out.println("instanced2"+name); personDao.add(); } public void init() { System.out.println("this is init method"); } public void destroy() { System.out.println("this is destroy method"); } public void add() { personDao.add(); } }
test1.java
package cn.sjtu.spring.test; import static org.junit.Assert.*; import java.util.List; import java.util.Map; import java.util.Set; import org.junit.Test; import org.springframework.context.ApplicationContext; import org.springframework.context.support.AbstractApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; import cn.sjtu.service.PersonService; public class test1 { @Test public void instanceSpring() { AbstractApplicationContext ctx = new ClassPathXmlApplicationContext("beans.xml"); PersonService personServiceInstance = (PersonService) ctx.getBean("id_personService"); /*personServiceInstance.add(); Set<String> sets = personServiceInstance.getSets(); List<String> lists = personServiceInstance.getLists(); Map<String, String> maps = personServiceInstance.getMaps(); System.out.println(sets.toString()); System.out.println(lists.toString()); System.out.print(maps.toString());*/ ctx.close(); } }
2. 注释方式实现IOC
beans.xml
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd"> <context:annotation-config/> <context:component-scan base-package="cn.sjtu"/> <!--这种方法配合component连bean都不用写 --> <!-- <bean id="id_personDao" class="cn.sjtu.service.PersonDao" /> <bean id="id_personService" class="cn.sjtu.service.PersonServiceBean" /> --> </beans>
PersonDao.java
package cn.sjtu.service; import org.springframework.stereotype.Component; @Component("id_personDao") public class PersonDao { public void add() { System.out.println("this is PersonDao add method"); } }
PersonService.java
package cn.sjtu.service; import java.util.List; import java.util.Map; import java.util.Set; public interface PersonService { public abstract void save(); public abstract void add(); }
PersonServiceBean.java
package cn.sjtu.service; import java.util.ArrayList; import java.util.HashMap; import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Set; import javax.annotation.PostConstruct; import javax.annotation.PreDestroy; import javax.annotation.Resource; import org.springframework.stereotype.Component; @Component("id_personService") public class PersonServiceBean implements PersonService { private String name; @Resource(name="id_personDao") private PersonDao personDao; //不需要get,set方法 private Set<String> sets = new HashSet<String>(); private List<String> lists = new ArrayList<String>(); private Map<String, String> maps = new HashMap<String, String>(); public void setName(String name) { this.name = name; } @Override public void save() { System.out.println("this is save method"); } public PersonServiceBean() { System.out.println("instanced"); } public PersonServiceBean(PersonDao personDao, String name) { System.out.println("instanced2"+name); personDao.add(); } @PostConstruct public void init() { System.out.println("this is init method"); } @PreDestroy public void destroy() { System.out.println("this is destroy method"); } public void add() { personDao.add(); } }
test1.java
package cn.sjtu.spring.test; import static org.junit.Assert.*; import java.util.List; import java.util.Map; import java.util.Set; import org.junit.Test; import org.springframework.context.ApplicationContext; import org.springframework.context.support.AbstractApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; import cn.sjtu.service.PersonService; public class test1 { @Test public void instanceSpring() { AbstractApplicationContext ctx = new ClassPathXmlApplicationContext("beans.xml"); PersonService personServiceInstance = (PersonService) ctx.getBean("id_personService"); /*personServiceInstance.add(); Set<String> sets = personServiceInstance.getSets(); List<String> lists = personServiceInstance.getLists(); Map<String, String> maps = personServiceInstance.getMaps(); System.out.println(sets.toString()); System.out.println(lists.toString()); System.out.print(maps.toString());*/ personServiceInstance.add(); ctx.close(); } }
相关文章推荐
- 一个jar包里的网站
- 一个jar包里的网站之文件上传
- 一个jar包里的网站之返回对媒体类型
- Spring整合Quartz(JobDetailBean方式)
- Spring整合Quartz(JobDetailBean方式)
- 模拟Spring的简单实现
- spring+html5实现安全传输随机数字密码键盘
- Spring中属性注入详解
- SpringMVC框架下JQuery传递并解析Json格式的数据是如何实现的
- struts2 spring整合fieldError问题
- spring的jdbctemplate的crud的基类dao
- 读取spring配置文件的方法(spring读取资源文件)
- Spring Bean基本管理实例详解
- java实现简单美女拼图游戏
- 详解Java的Spring框架中的事务管理方式
- 解析Java的Spring框架的BeanPostProcessor发布处理器
- Java开发框架spring实现自定义缓存标签
- java基本教程之线程休眠 java多线程教程
- JSP开发中在spring mvc项目中实现登录账号单浏览器登录
- spring boot实战之内嵌容器tomcat配置