IOC:全称Inversion of Control,中文释义为控制反转。

简单地说,IOC就是把对象的实例化工作交由Spring容器来完成。IOC可以说是一种思想,传统的应用程序是我们自己去创建(new)对象,为"正转",而IOC是将创建对象的工作交给Spring容器,对象是被动的被Spring容器创建,即为“反转”,“控制”即为Spring容器控制对象的创建。

DI:全称Dependence Injection。中文释义为依赖注入。依赖:

public class A{

private B b;

}

此时称A依赖于B。

而DI可以说是IOC的一种具体实现,在Spring创建对象的过程中,将对象依赖的属性注入到对象中,即创建A对象时将其依赖的B对象也一并创建并注入到A对象中。由于控制反转概念比较含糊(可能只是理解为容器控制对象这一层面,很难让人想到谁来维护对象关系),所以2004年大师级人物Martin Fowler又给出了一个新的名字:“依赖注入”,相对IOC 而言,“依赖注入”明确描述了“被注入对象依赖IOC容器配置依赖对象”。

转自:https://blog.csdn.net/a1151723225/article/details/79848669

Spring框架中IOC和DI的区别相关推荐

  1. Spring框架中ApplicationContext与BeanFactory的区别

    前言 Spring框架中ApplicationContext与BeanFactory的区别.其中,BeanFactory为ApplicationContext的父类,是一种继承关系,Applicati ...

  2. Spring框架,IOC,DI,AOP,单例多例,懒加载

    文章目录 1.Spring 2.IOC 2.1 什么是IOC 2.2 xml配置文件管理对象 2.3 全注解的方式管理对象 3.Spring创建对象-工厂模式(必会内容) 4.单例与多例 4.1@Sc ...

  3. Spring框架中IoC(控制反转)的原理

    一.IoC的基础知识以及原理: 1.IoC理论的背景:在采用面向对象方法设计的软件系统中,底层实现都是由N个对象组成的,所有的对象通过彼此的合作,最终实现系统的业务逻辑.即软件系统中对象之间的耦合,对 ...

  4. Spring详解—— IOC 和 DI 区别

    1.本章前言 我们只要提到Spring这个词,有简单了解过Spring的人基本上都会脱口而出IoC.DI和AOP这几个概念.但是对于初学者来说,一下子搞懂IoC和DI的概念还是挺麻烦的.比如之前我自己 ...

  5. SSM—Spring框架,IOC理论推导,Hello Spring,IOC创建对象方式,Spring的配置,DI(依赖注入)

    文章目录 1.Spring 1.1.Spring简介(了解) 1.2.spring优点 1.3.组成(七大模块) 1.4.拓展 2.IOC理论推导 2.1.IOC本质 3.Hello Spring 4 ...

  6. Spring框架中常用的设计模式详解

    一.浅谈控制反转(IOC)与依赖注入(DI) IOC(Inversion of Control)是Spring中一个非常重要的概念,它不是什么技术,而是一种解耦的设计思想.它主要的额目的是借助于第三方 ...

  7. 理解Spring框架中Bean的作用域

    本篇介绍Spring Bean实例的作用范围,Spring Bean实例的作用范围由配置项scope限定.通过本篇的学习,可以达成如下目标. ● 应用scope配置项配置Bean的作用域 ● 应用单例 ...

  8. Spring框架中的控制反转和依赖注入

    控制反转: 控制反转是用来降低代码之间的耦合度的,基本思想就是借助"第三方"实现具有依赖对象的解耦. 为什么需要控制反转,因为项目中对象或多或少存在耦合.控制反转的关键在于Ioc容 ...

  9. Spring框架中的Bean

    1.什么是Bean? 在Spring框架中,Bean是指一个由Spring容器管理的对象.这个对象可以是任何一个Java类的实例,例如数据库连接.业务逻辑类.控制器等等.Bean实例的创建和管理是由S ...

最新文章

  1. L1-023 输出GPLT (C++解决,含题解)
  2. 华北电力大学计算机导论试题,保定华北电力大学计算机与科学大一课程
  3. 针对NLP长文本处理问题的Longformer论文解读
  4. 摆脱科技僵尸,回归生龙活虎
  5. 一张图看透微信公众号、企业号、小程序
  6. Ovum观察:运营商通信PaaS发展趋势强劲
  7. DOTNET零碎要点---1.vb.net利用Oracle.DataAccess.dll链接Oracle数据库
  8. adb连接MuMu、逍遥、夜神、雷电模拟器以及腾讯手游助手以及断开连接
  9. amp;#9733;一名“标题党”自我修炼的10…
  10. 36令牌环网的基本原理
  11. SI4463配置软件wds3
  12. 打开计算机读取硬盘慢,机械硬盘读写速度慢几招优化方法提升!
  13. 学计算机的什么是镜像,什么是镜像?镜像有什么用途?
  14. LeetCode 24.两两交换链表中的节点 C语言
  15. AI时代,APP运营是否会被淘汰
  16. android gpu平板 推荐,性能强的不像话,最强安卓平板华为平板M6上手
  17. JAVA学习资源种子
  18. 前端面试之浏览器原理篇
  19. C语言练习,利用求阶乘函数Fact(),编程计算并输出从1到n之间所有数的阶乘值。
  20. java 获取叶子节点个数_数据结构编程: 统计二叉树中叶子结点的个数。

热门文章

  1. android zip文件读写,【Android】Zip文件解压方法
  2. 找回淘宝的“高级搜索”功能
  3. “燕云十六将”之张永生(13)
  4. 搭建PXE自动安装centos
  5. 北漂生活第十九弹-再谈留在大城市的一张床还是小城市的一套房
  6. Cadence Allegro输出钻孔信息文件图文教程及视频演示
  7. OpenCV3 5.3 用形态学滤波器开启和闭合图像
  8. int bool str (索引,切片) for 循环
  9. 盘点最常用的十款代码编辑器
  10. java飞鸽传书_java简单版飞鸽传书