Spring中的IOC与DI理解总结

引入:
Spring的核心就是Ioc和DI,并通过俩者解耦。

IOC

推荐阅读:
https://blog.csdn.net/yexunce3159/article/details/82710583
个人理解:
在层层嵌套的类中,传统的方式是:每一层都new上一层的对象,然后调用方法。这样在最底层如果方法发生改变,那么之后的每一层都将改变。IOC思想中中,每一层不直接的new对象,而是将上一层的类作为参数传入下一层。

在使用时,才开始new全部的对象,这样当最底层的类发生变化时,只需要改变这一个发生变化的类即可。传统方式,对象由上一层进行管理创建,IOC中对象被IOC容器统一管理创建,对象的创建管理发生了变化,即为控制反转。

DI

DI(Dependency Injection)依赖注入,指容器复制创建和维护对象之间的依赖关系,而不是通过对象本身复制自己的创建和解决自己的依赖。控制反转是通过依赖注入实现的。

其实Ioc和DI在Spring中是一个等同的概念。如果非要咬文嚼字的话,控制反转是依赖注入的一部分,或者说是同一个行为偏重点不同的俩个称呼。

他们是从不能的角度阐述同一个功能,描述的对象不同而已。依赖注入是从程序本身来说,控制反转是从容器来说的。

下图为IOC容器的注入过程:
Spring中的IOC与DI理解总结
IOC和DI的关系简短的总结:
https://blog.csdn.net/q649381130/article/details/78465668