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