Spring控制反转与依赖注入
1. 控制反转(IOC)
控制反转(Inversion of Control,缩写IoC),是面向对象编程中的一种设计原则。通过控制反转可以降低代码之间的耦合。通过控制反转,对象在被创建的时候,由一个调控系统内所有对象的外界实体将其所依赖的对象的引用传递给它。也可以说,依赖被注入到对象中。
如何理解控制反转呢?
- 控制: 对于成员变量赋值的控制权
- 反转控制: 把对于成员变量赋值的控制权,从代码中反转(转移)到Spring工厂和配置文件中完成
- 底层实现: 工厂模式
2. 依赖注入(DI)
依赖注入Dependency Injection简称DI,依赖注入是控制反转的实现方式之一。
什么是依赖注入呢?
- 注入: 通过Spring工厂及配置文件,为对象(bean,组件)的成员变量赋值
- 依赖: 当一个类需要用到其他类时,也就是类中的成员变量是其它类的实例等情况就是依赖。
- 依赖注入: 当⼀个类需要另⼀个类时,就意味着依赖,一旦出现依赖,就可以把另⼀个类作为本类的成员变量,最终通过Spring配置文件进行注入(赋值)。
3. 总结
通过依赖注入是控制反转的实际实现。通过控制反转的理念与依赖注入相结合,可以减少代码之间的耦合性。