实际的开发中,我们尽量降低对象间的依赖关系即耦合度。比如代码中SETTER,GETTER在另一个对象里进行设置,设置的过程始终在代码周期中完成,耦合度高,如有改动需要重新编译,IOC就是用来进行属性设置代码脱离降偶的解决方法.
Spring框架中提供了一个强有力的容器组件管理功能,容器本身基于IOC(控制反转)和DI(依赖注入)的实现方式,下面来举例说明ICO在SPRING中的具体使用方法:
创建一个接口:
Employee.java
---
package cn.txdnet.spring.ioc.demo;
public interface Employee {
public String showDetail();
}
创建一个接口的实现类:
PartimeEmployee.java
----
package cn.txdnet.spring.ioc.demo;
public class PartimeEmployee implements Employee {
@Override
public String showDetail() {
return "I Am A Part Time Employee";
}
}
创建另一个实现类:
FulltimeEmployee.java
----
package cn.txdnet.spring.ioc.demo;
public class FulltimeEmployee implements Employee {
@Override
public String showDetail() {
return "I Am Full Time Employee";
}
}
创建服务提供类:
EmployeeService.java
---
package cn.txdnet.spring.ioc.demo;
public class EmployeeService {
Employee employee;
public void setEmployee(Employee employee) {
this.employee = employee;
}
public String printDetail() {
return employee.showDetail();
}
}
配置BEAN.XML文件,让容器进行注入相应的实现类
bean.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.xsd">
<bean id="fulltimeEmployee" class="cn.txdnet.spring.ioc.demo.FulltimeEmployee"></bean>
<bean id="partimeEmployee" class="cn.txdnet.spring.ioc.demo.PartimeEmployee"></bean>
<bean id="employeeService" class="cn.txdnet.spring.ioc.demo.EmployeeService">
<property name="employee">
<ref local="partimeEmployee"/>
</property>
</bean>
</beans>
现在写一个主程序类来调用服务方法:
RunDemoMain.java
---
package cn.txdnet.spring.ioc.demo;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class RunDemoMain {
public static void main(String[] args) {
ApplicationContext context = new ClassPathXmlApplicationContext("beans.xml");
EmployeeService employeeService = (EmployeeService) context.getBean("employeeService");
System.out.println(employeeService.printDetail());
}
}
现在 ,你只需更改bean.xml里的<ref local="partimeEmployee"/>就可以更改服务提供的方法具体实现了, 达到服务和具体实现的分离,配置优于实现,易于管理维护。
相关阅读:http://www.txdnet.cn/ls/11/0/1.xhtm上一篇: Spring ClassPathXmlApplicationContext and FileSystemXmlApplicationContext使用说明 2012-01-21 21:26
下一篇: Spring3 RMI 使用介绍 2012-01-16 00:13
Copyright©2007-2012 www.txdnet.cn All Rights Servered. Powered By JITCMS V1.5 京ICP备09017503号.
Host By www.fjjsp.com
.