您的位置:首页 > 编程语言 > Java开发

springIOC和DI的意义

2016-04-26 14:26 447 查看

springIOC和DI的意义:

实现了完全的面向接口编程document案例MVC案例 Document案例-使用构造方法的依赖注入
接口
public interface Document {
void read();
void write();
}
实现类1
public class WordDocument implements Document {
public void read() {
System.out.println("word read");
}
public void write() {
System.out.println("word writer");
}
}
实现类2
public class PDFDocument implements Document {
public void read() {
System.out.println("pdf read");
}
public void write() {
System.out.println("pdf write");
}
}

工具类
public class DocumentManager {
public Document document;
public DocumentManager(Document document){
this.document = document;
}
public void read(){
document.read();
}
public void write(){
document.write();
}
}
测试
public class Test1 {
@Test
public void test1(){
ApplicationContext context = new  ClassPathXmlApplicationContext("applicationContext.xml");
DocumentManager manager = (DocumentManager) context.getBean("DocumentManager");
manager.read();
manager.write();
}
}
spring配置文件applicationContext.xml
<bean id="DocumentManager" class="spring_ioc_di_document.DocumentManager">
<constructor-arg index="0" ref="pdfDocument"></constructor-arg></bean>
<bean id="wordDocument" class="spring_ioc_di_document.WordDocument"></bean>
<bean id="pdfDocument" class="spring_ioc_di_document.PDFDocument"></bean>
mvc案例-使用set方式依赖注入dao接口
public interface PersonDao {
public void read();
}
dao实现
public class PersonDaoImpl implements PersonDao  {
public void read() {
System.out.println("personDao read");
}
}
service接口
public interface PersonService {
public void read();
}

service实现
public class PersonServiceImpl implements PersonService{
PersonDao persondao;
public PersonDao getPersondao() {
return persondao;
}
public void setPersondao(PersonDao persondao) {
this.persondao = persondao;
}
@Override
public void read() {
persondao.read();
}
}
测试
public class Test2 {
@Test
public void test2(){
ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
PersonAction action = (PersonAction) context.getBean("PersonAction");
action.read();
}
}
spring配置文件applicationContext.xml
<bean id="personDao" class="spring_mvc.PersonDaoImpl"></bean>
<bean id="personService" class="spring_mvc.PersonServiceImpl" >
<property name="persondao" >
<ref bean="personDao"/>
</property>
<bean id="PersonAction" class="spring_mvc.PersonAction">
<property name="service">
<ref bean="personService"/>
</property>
</bean>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: