Spring IoC/DI 01-IoC/DI 简介

IoC/DI 简介

IoC

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

为什么会出现 IoC

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

Spring IoC

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

DI

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

DI 的出现

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

IoC/DI 原理

Spring 中 IoC/DI 特性本质上是通过 XML 解析和 Java 反射机制来实现的。

参考:谈谈对 Spring IoC 的理解

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值