IoC 是 Inversion of Control 的简写,译为“控制反转”,它不是一门技术,而是一种设计思想,也是一个概念,同时是一个重要的面向对象编程法则,能够指导我们如何设计出松耦合、更优良的程序。
在这里说 IoC 之前,你需要完全理解一个概念 DI(依赖注入)。
当你理解依赖注入以后,对控制反转就非常简单了,只是一个概念而已。
什么是依赖注入,请参考文章:Java 依赖注入(DI)https://www.ossez.com/t/java-di/14383
控制反转
用土话来说就是本来应该是用你自己程序解决的依赖注入,我们现在把这个权力交给 Spring 来进行管理。
由 Spring 来管理所有的对象,因为你的权力下放给 Spring 了,Spring 就来进行控制了。
这个现象就叫做控制反转。
所以控制反转只是对一个现象的定义,Spring 是这个现象的具体实现罢了。
Spring 通过 IoC 容器来管理所有 Java 对象的实例化和初始化,控制对象与对象之间的依赖关系。我们将由 IoC 容器管理的 Java 对象称为 Spring Bean,它与使用关键字 new 创建的 Java 对象没有任何区别。
IoC 容器是 Spring 框架中最重要的核心组件之一,它贯穿了 Spring 从诞生到成长的整个过程。