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

Spring IoC(控制反转)和DI(依赖注入)的理解

2017-08-10 15:42 489 查看
接触过spring的对IOC和DI绝对不会陌生,但是对于初学者来说这两个词的概念是比较模糊的。今天我和大家分享一下我对spring框架中IOC和DI的理解。

IOC(控制反转)

首先IOC(Ioc—Inversionof Control)是一个思想,是来帮助我们设计出松耦合、可调性更高的程序。下面我举一个例子来说明一下什么是IOC。

比如说我们在A对象中new了一个B对象,那么我们就可以说A是依赖于B的,当我们想要用B的时候就new出来就好了。也就说B的创建控制权在A对象上。现在有了IoC容器后,对象的创建和查找依赖对象的权利就交给了容器,当A对象想要使用B对象时,我们就去容器拿就好了。因为容器进行注入组合对象,所以A对象与B对象之间是松散耦合。

现在再来看,原来创建B对象的权利是A对象,现在变成了IOC容器了,这就是控制发生反转了。

DI(依赖注入)

DI(DependencyInjection)其实它们是同一个概念的不同角度描述 ,由于控制反转概念对spring理解比较含糊,所以有人提出了依赖注入这个说法。那么我们来看看用依赖注入如何理解上面的例子。

一开始B对象是在A被创建的,A是依赖B对象的,容器出现后,A对象就不直接依赖于B了,而是通过容器把B注入给A使用,我们就可以理解为A不在依赖B对象,而是“依赖”“容器注入”这么一个功能,A想用B,那么只有注入后才能使用,依赖注入的名字就这么来的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息