Spring框架中IOC和DI的区别
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的区别相关推荐
- Spring框架中ApplicationContext与BeanFactory的区别
前言 Spring框架中ApplicationContext与BeanFactory的区别.其中,BeanFactory为ApplicationContext的父类,是一种继承关系,Applicati ...
- Spring框架,IOC,DI,AOP,单例多例,懒加载
文章目录 1.Spring 2.IOC 2.1 什么是IOC 2.2 xml配置文件管理对象 2.3 全注解的方式管理对象 3.Spring创建对象-工厂模式(必会内容) 4.单例与多例 4.1@Sc ...
- Spring框架中IoC(控制反转)的原理
一.IoC的基础知识以及原理: 1.IoC理论的背景:在采用面向对象方法设计的软件系统中,底层实现都是由N个对象组成的,所有的对象通过彼此的合作,最终实现系统的业务逻辑.即软件系统中对象之间的耦合,对 ...
- Spring详解—— IOC 和 DI 区别
1.本章前言 我们只要提到Spring这个词,有简单了解过Spring的人基本上都会脱口而出IoC.DI和AOP这几个概念.但是对于初学者来说,一下子搞懂IoC和DI的概念还是挺麻烦的.比如之前我自己 ...
- 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 ...
- Spring框架中常用的设计模式详解
一.浅谈控制反转(IOC)与依赖注入(DI) IOC(Inversion of Control)是Spring中一个非常重要的概念,它不是什么技术,而是一种解耦的设计思想.它主要的额目的是借助于第三方 ...
- 理解Spring框架中Bean的作用域
本篇介绍Spring Bean实例的作用范围,Spring Bean实例的作用范围由配置项scope限定.通过本篇的学习,可以达成如下目标. ● 应用scope配置项配置Bean的作用域 ● 应用单例 ...
- Spring框架中的控制反转和依赖注入
控制反转: 控制反转是用来降低代码之间的耦合度的,基本思想就是借助"第三方"实现具有依赖对象的解耦. 为什么需要控制反转,因为项目中对象或多或少存在耦合.控制反转的关键在于Ioc容 ...
- Spring框架中的Bean
1.什么是Bean? 在Spring框架中,Bean是指一个由Spring容器管理的对象.这个对象可以是任何一个Java类的实例,例如数据库连接.业务逻辑类.控制器等等.Bean实例的创建和管理是由S ...
最新文章
- L1-023 输出GPLT (C++解决,含题解)
- 华北电力大学计算机导论试题,保定华北电力大学计算机与科学大一课程
- 针对NLP长文本处理问题的Longformer论文解读
- 摆脱科技僵尸,回归生龙活虎
- 一张图看透微信公众号、企业号、小程序
- Ovum观察:运营商通信PaaS发展趋势强劲
- DOTNET零碎要点---1.vb.net利用Oracle.DataAccess.dll链接Oracle数据库
- adb连接MuMu、逍遥、夜神、雷电模拟器以及腾讯手游助手以及断开连接
- amp;#9733;一名“标题党”自我修炼的10…
- 36令牌环网的基本原理
- SI4463配置软件wds3
- 打开计算机读取硬盘慢,机械硬盘读写速度慢几招优化方法提升!
- 学计算机的什么是镜像,什么是镜像?镜像有什么用途?
- LeetCode 24.两两交换链表中的节点 C语言
- AI时代,APP运营是否会被淘汰
- android gpu平板 推荐,性能强的不像话,最强安卓平板华为平板M6上手
- JAVA学习资源种子
- 前端面试之浏览器原理篇
- C语言练习,利用求阶乘函数Fact(),编程计算并输出从1到n之间所有数的阶乘值。
- java 获取叶子节点个数_数据结构编程: 统计二叉树中叶子结点的个数。
热门文章
- android zip文件读写,【Android】Zip文件解压方法
- 找回淘宝的“高级搜索”功能
- “燕云十六将”之张永生(13)
- 搭建PXE自动安装centos
- 北漂生活第十九弹-再谈留在大城市的一张床还是小城市的一套房
- Cadence Allegro输出钻孔信息文件图文教程及视频演示
- OpenCV3 5.3 用形态学滤波器开启和闭合图像
- int bool str (索引,切片) for 循环
- 盘点最常用的十款代码编辑器
- java飞鸽传书_java简单版飞鸽传书