博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
IOC与DI的区别
阅读量:5037 次
发布时间:2019-06-12

本文共 743 字,大约阅读时间需要 2 分钟。

一、IOC介绍

1.IOC是控制反转。

2.传统资源查找方式:要求组件向容器发起请求,查找资源作为回应,容器适时返回资源。

3.IOC查找方式:容器会主动将资源提供给它所管理的组件,组件只需要选择一个合适的方式来接收资源,也被称为查找的被动式。

4.创建对象实例的控制权从代码控制剥离到IOC容器控制(之前的写法,由程序代码直接操控使用new关键字),实际就是你在xml文件控制,控制权的转移是所谓反转,侧重于原理。

 

二、DI介绍

1.DI是依赖注入

2.IOC的另一种表达方式:组件以一些预先定义好的方式(如:setter方法)接收来自容器的资源注入。

3.相对于IOC而言,这种表述更加直接。

4.创建对象实例时,为这个对象注入属性值或其它对象实例,侧重于实现。

 

属性注入(最常用)

1.通过set方法注入Bean的属性值或依赖的对象。

2.name属性:制定Bean属性set方法后的属性名。

3.value属性值:可以使(value)子节点指定属性值。

 

构造器注入

1.通过构造器注入Bean属性值或依赖对象,它保证Bean实例在实例化后可以使用。

2.构造器注入在<constractor-arg>一样。

 

三、区别

1.它们是spring核心思想的不同方面的描述。

2.依赖注入和控制反转是对同一件事情的不同描述,从某个方面讲,就是它们描述的角度不同。

依赖注入是从应用程序的角度在描述,可以把依赖注入描述完整点:应用程序依赖容器创建并注入它所需要的外部资源;

而控制反转是从容器的角度在描述,描述完整点:容器控制应用程序,由容器反向的向应用程序注入应用程序所需要的外部资源。

转载于:https://www.cnblogs.com/zdf159/p/7252949.html

你可能感兴趣的文章
ES6-----学习系列二(解构赋值)
查看>>
“猜画小歌”的一些细节和思考
查看>>
Android图像处理 - 高斯模糊的原理及实现
查看>>
Eclipse里选中一个变量后,这个类里的该变量不变色了?
查看>>
解密浏览器缓存机制
查看>>
Apache服务器的安装与配置
查看>>
登陆工程
查看>>
实用的ES6特性
查看>>
通过id设置的css属性和通过元素设置的css属性冲突了,优先级哪个高?
查看>>
python将两个数组合并成一个数组的两种方法的代码
查看>>
Java基础8-浅谈java程序的运行机制与JVM运行
查看>>
MyBatis之级联——鉴别器
查看>>
javascript:void(0)的含义
查看>>
解决android启动程序时,会出现一个短暂的白色空白界面的问题
查看>>
BZOJ‘s Usaco 奶牛题集锦
查看>>
生成器
查看>>
drf权限组件
查看>>
输入月份和日期,得出是今年第几天
查看>>
利用mysqldump备份mysql
查看>>
Qt中子窗口全屏显示与退出全屏
查看>>