详细介绍 IOC 和 DI
全栈自学社区
共 2991字,需浏览 6分钟
· 2021-04-26
点击关注,与你共同成长!
学习过 Spring 框架的人一定都会听过 Spring 的 IoC (控制反转) 、DI (依赖注入)这两个概念,对于初学 Spring 的人来说,总觉得 IoC 、DI 这两个概念是模糊不清的,是很难理解的,今天和大家分享网上的一些技术大牛们对 Spring 框架的 IOC 的理解以及谈谈我对 Spring Ioc 的理解。
1、IOC是什么
用图例说明一下,传统程序设计如图1,都是主动去创建相关对象然后再组合起来:
![](https://filescdn.proginn.com/db551280d83e4d3464adae448c20ac5d/6e1a4f880ab52e899ac33b820acdf240.webp)
当有了IOC的容器后,在客户端类中不再主动去创建这些对象了,程序的结构图变成如图2所示:
![](https://filescdn.proginn.com/93607f12a6297a8b9d817cd1ef196a25/2c73f666ca2c5ce508d787c1074f09b3.webp)
2、IoC能做什么
有了IOC容器后,把创建和查找依赖对象的控制权交给了容器,由容器进行注入组合对象,所以对象与对象之间是松散耦合,这样也方便测试,利于功能复用,更重要的是使得程序的整个体系结构变得非常灵活。
3、IOC和DI
为什么需要依赖:应用程序需要 IOC 容器来提供对象需要的外部资源;
谁注入谁:很明显是 IOC 容器注入应用程序某个对象,应用程序依赖的对象;
注入了什么:就是注入某个对象所需要的外部资源(包括对象、资源、常量数据)。
4、IOC 和 DI 的意义
作者:fuzhongmin05
![](https://filescdn.proginn.com/1d7a42f05845e31f5b56aabf958e94c3/7147d9766c7a2feca3b8ec6422ec5e2b.webp)
以上,便是今天的分享,希望大家喜欢,觉得内容不错的,欢迎「分享」「赞」或者点击「在看」支持,谢谢各位。
评论