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

spring 控制反转和依赖注入(1)

2018-03-05 16:51 344 查看

Spring

Ioc(控制反转):把复杂系统分解成相互合作的对象,这些对象类通过封装以后,内部实现对外部是透明的,从而降低了解决问题的复杂度,而且可以灵活地被重用和扩展。
1. 软件系统在没有引入IOC容器之前,对象A依赖于对象B,那么对象A在初始化或者运行到某一点的时候,自己必须主动去创建对象B或者使用已经创建的对象B。无论是创建还是使用对象B,控制权都在自己手上。
2.引入IOC容器之后,对象A与对象B之间失去了直接联系,当对象A运行到需要对象B的时候,IOC容器会主动创建一个对象B注入到对象A需要的地方。
通过前后的对比,我们不难看出来:对象A获得依赖对象B的过程,由主动行为变为了被动行为,控制权颠倒过来了这就是“控制反转”这个名称的由来。
2. IOC中最基本的技术就是“反射(Reflection)”编程,通俗来讲就是根据给出的类名(字符串方式)来动态地生成对象,这种编程方式可以让对象在生成时才决定到底是哪一种对象。只是在Spring中要生产的对象都在配置文件中给出定义,目的就是提高灵活性和可维护性。

依赖注入(DI):

由IOC容器在运行期间,动态地将某种依赖关系注入到对象之中。

依赖注入spring的注入方式:

· 
· 
·1.set注入方式
private OrderServiceImp orderService;

public void setOrderService(OrderServiceImp orderService) {
this.orderService = orderService;
}· 2.静态工厂注入方式
· 3.构造方法注入方式
控制层代码:

private OrderServiceImp orderService;

public OrderAction(OrderServiceImp orderService) {
this.orderService = orderService;
}
Spring配置XML文件:

<bean name="orderAction" class="com.pec.action.OrderAction">
<constructor-arg ref="orderService"></constructor-arg>
</bean>
<bean name="orderService" class="com.pec.service.imp.OrderServiceImp"></bean>· 4.基于注解的方式


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: