spring中的IOC跟DI的理解

spring中有两个非常核心的概念:IOCDI --> 控制反转跟依赖注入。
当初学习这个框架的时候,只是强制自己记住这两个名词,并没有深刻的理解他们的概念和思想。现在来复盘一下。
IOC
控制反转。相信第一个听到这个名词的人肯定一头雾水,控制什么,又反转什么?
要理解这个名词,就要知道spring给我们开发者解决的一个对象创建的问题,只要你项目用的是spring,并把实体bean交由spring创建了,那么就可以理解为spring控制了你的对象创建,这是将以前传统的方式:由开发者自己在去new一个或者多个对象,共同搭配完成业务需求的这种创建对象的方式给反转过来了,现在是交由spring去控制了。
DI
依赖注入。这个其实比较好理解,这是对IOC思想的一种具体行为解释,相信写过mvc模式代码的人都知道,要去完成一个业务流程,我们需要创建一个controller和service和dao,然后才能完成这个业务代码。这里面controller会将service当为一个属性依赖进来,而service又会将dao依赖进来,这是一种依赖注入的行为,以前我们可能需要自己去new,现在不用了,有了IOC容器,我们只要去声明这个属性,spring就会将对象在我们代码运行时将所需要的对象依赖注入到当前类中,并不需要我们手动再去new对象这个操作。

总的来说,spring的IOC跟DI讲的是同个东西,只不过一个是思想方面的概念,一个是具体的行为定义。将对象交由spring统一管理的好处是解除代码之间的强耦合,对象的生命周期也直接交由spring统一管理,更加符合开闭原则的思想

# spring  ioc  di 

评论

何首污 : 叼毛
渣男 : 456
三群的弟弟 : 123
Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×