Spring 高级源码核心思想:Spring IoC

559 阅读1分钟

注意:IOC和AOP不是spring提出的,在spring之前就已经存在,只不过更偏向于理论化,spring在技术层次把这两个思想做了⾮常好的实现(Java)

一、什么是IoC?

IoC Inversion of Control (控制反转/反转控制),注意它是⼀个技术思想,不是⼀个技术实现。

描述的事情: Java开发领域对象的创建,管理的问题

传统开发⽅式: ⽐如类A依赖于类B,往往会在类A中new⼀个B的对象

IoC思想下开发⽅式:我们不⽤⾃⼰去new对象了,⽽是由IoC容器(Spring框架)去帮助我们实例化对象并且管理它,我们需要使⽤哪个对象,去问IoC容器要即可

我们丧失了⼀个权利(创建、管理对象的权利),得到了⼀个福利(不⽤考虑对象的创建、管理等⼀系列事情)

为什么叫做控制反转?

  • 控制:指的是对象创建(实例化、管理)的权利
  • 反转:控制权交给外部环境了(spring框架、IoC容器)

image.png

二、IoC解决了什么问题

IoC解决对象之间的耦合问题

image.png

三、IoC和DI的区别

DI:Dependancy Injection(依赖注⼊)

怎么理解:

IOC和DI描述的是同⼀件事情,只不过⻆度不⼀样罢了

image.png