文章目录
Spring IOC原理
IOC原理:
IOC,即控制反转(Inversion of Control)。
在没有引入IOC容器之前,对象A如果依赖于对象B,对象A要使用对象B的时候,就必须自己去创建对象B或者使用已经创建的对象B。无论创建还是使用对象B,控制权都在对象A自己手上。
引入IOC容器后,对象A与对象B之间失去了直接联系,当对象A运行到需要使用对象B的时候,由IOC容器创建一个对象B注入到对象A中,将创建管理依赖对象的控制权转移到IOC容器中来,从而实现对象之间的解耦。
Spring IOC主要分为两个部分:
- 初始化
- 注入依赖
所以什么是控制反转,总结起来就是一句话,获得依赖对象的控制权由自身转移到了第三方容器上(IOC容器)。
依赖注入(DI,Dependency Injection)是IOC原理的一种实现方式。在IOC容器运行期间,将依赖关系动态注入到对象之中。
依赖注入(DI)的三种方式
- 构造方法注入
- setter方法注入
- 基于注解的注入
Spring-Bean循环依赖以及解决方式
什么是循环依赖
循环依赖就是两个或者两个以上的Bean互相依赖对象,形成一个闭环。
如下图,A依赖B,B依赖C,C又依赖于A,这样依赖就形成了闭环,产生了循环依赖问题。