美文网首页
Spring IoC/DI 01-IoC/DI 简介

Spring IoC/DI 01-IoC/DI 简介

作者: 周老一员 | 来源:发表于2020-02-21 17:44 被阅读0次

IoC/DI 简介

IoC

IoC(英文全称为 Inversion of Control,中文译名为控制反转)是一种设计思想。在传统程序中,需要的对象(也可称之为依赖对象)都由编程开发人员直接控制(包括创建、销毁,如通过 new 的方式创建一个对象),这个可以理解为正转;而在 IoC 设计思想中,需要的对象由某个容器来控制(包括创建、销毁和注入),对象的控制权不再归属于编程人员,而归属于容器,这个就可以理解为反转。

为什么会出现 IoC

传统应用程序都是由我们在类内部主动创建依赖对象,从而导致类与类之间高耦合,难于测试;有了 IoC 容器后,把创建依赖对象的控制权交给了容器,由容器进行注入依赖对象,所以对象与对象之间是松耦合,这样也方便测试,有利于功能复用,更重要的是使得程序的整个体系结构变得非常灵活。

Spring 框架中的 IoC

IoC 是 Spring 框架的核心,对象的生命周期和对象间的关系均由 Spring 框架中的 IoC 容器控制。通俗地说,所有的类都会在容器中登记,告诉容器你是什么,你需要什么,然后容器会在系统运行到适当的时候,把你要的主动给你(创建 + 注入),同时也把你交给其他需要你的对象。

DI

DI(英文全称为 Dependency Injection,中文译名为依赖注入)是 IoC 的别名。可以简单理解为,容器创建某个依赖对象,并将该依赖对象注入到需要该依赖对象的地方(也可称之为被注入对象)。

DI 的出现

由于控制反转概念比较含糊,所以在 2004 年大师级人物 Martin Fowler 又给出了一个新的名字:“依赖注入”,相对IoC 而言,“依赖注入”明确描述了“被注入对象依赖 IoC 容器来配置依赖对象”

Spring 框架中的 DI

Java 1.3 之后提供了一个重要特征——反射(reflection),它允许程序在运行的时候动态的生成对象、执行对象的方法、改变对象的属性,Spring 框架就是通过反射机制来实现依赖注入的。

参考:谈谈对 Spring IoC 的理解

相关文章

网友评论

      本文标题:Spring IoC/DI 01-IoC/DI 简介

      本文链接:https://www.haomeiwen.com/subject/qxqhqhtx.html