栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Spring之路(5)--IoC、DI傻傻分不清楚

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Spring之路(5)--IoC、DI傻傻分不清楚

傻傻分不清楚

很多老铁说起自己的Java水平,经常会提起,本人精通Spring,然后也熟知Spring的核心就是IoC和AOP。

然后一问啥是IoC、啥是DI,就懵了,扯不清楚到底啥是啥,还有的就认为IoC和DI就是一个事,其实还真是有点差别滴。

控制反转是啥

IoC,即Inversion of Control,翻译成中文就是控制反转,那是对啥玩意的控制反转了呢,此处专指依赖项,也就是说对依赖项的控制发生了反转。

具体说明下,正常情况是怎么控制依赖项的呢,例如:

public class Driver {
	//依赖项:姓名
	private String name;
}

我们要在Driver对象中注入String对象,实际上是需要自己创建组件,然后通过构造函数或者set方法注入到Driver中。

那么IoC控制反转的情况下,对依赖项的控制是由容器来实现的,比如Spring容器就可以通过xml配置,将name的值注入到Driver对象中。

之前是程序员控制,之后是容器控制,实际上就是控制权发生了转换,此处学者为之命名控制反转,我个人感觉叫控制转移也是OK的。

依赖注入是啥

DI,全称Dependency Injection,即依赖注入,上面说了控制反转是容器控制依赖项,那么如何将依赖项注入到组件中,有一些具体的方式,比较常用的是依赖查找和依赖注入。也就是说,依赖注入实际上是控制反转的一种具体实现方式。

为了便于理解,此处稍微说明下依赖查找和依赖注入的区别:

  • 依赖查找:程序员自己去查找依赖项
  • 依赖注入:在容器中配置好依赖,容器自行装配

Spring采用的是依赖注入的方式,也是主流的方式,肯定是好处多多,这个还得等Spring用的多了才能体会到。现在理解概念就是了。

总结

说白了,如果限定死了就是Spring框架,那么说IoC和DI是一回事,也差不多,毕竟Spring的IoC就是用DI方式实现的。

但是IoC和DI确实不是一个概念,就像去太空并一定是乘飞船(也可能是航天飞机)、去北京不一定是做高铁(也可能是骑自行车)。这个比喻有点扯,将就将就吧。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/239044.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号