网站首页 > 技术文章 正文
大家好,我是mikechen。
Java面试经常问到IOC控制反转,比如:IOC控制反转的作用原理等,下面我就来详解IOC控制反转@mikechen
本篇已经收纳于mikechen创作的《阿里架构师进阶专题合集》里面。
IOC控制反转
IOC,英文全称是Inversion of Control,翻译过来就是控制反转,所以很多提到IOC,就叫IOC控制反转。
IOC控制反转能够将对象之间的依赖关系转移到容器中进行管理,从而降低了对象之间的耦合性,使得程序更加灵活、可扩展和易于维护。
通过IOC容器管理对象之间的依赖关系,可以使得对象更加独立、可重用,从而提高了程序的可重用性。
IOC控制反转原理
IOC不是一种技术,只是一种思想,它的核心思想是将对象的创建、组装和管理的控制权交给一个容器,而不是由对象自己进行创建和管理。
在没有IOC容器之前,传统应用程序都是由我们在类内部主动创建依赖对象,如下图所示:
这种方式,从而导致类与类之间高耦合,难于测试,于是后面就了IOC容器。
有了IoC容器后,把创建和查找依赖对象的控制权交给了容器,而不是由对象自己进行创建和管理。
如下图所示:
上图引入了IOC容器,使得A、B、C、D这4个对象没有了耦合关系,齿轮之间的传动全部依靠“第三方”了。
在IoC中,对象不再负责自己的创建和管理,而是被容器创建和管理,这就是IOC控制反转的核心思想。
IOC控制反转实现
在实现IOC的过程中,最重要的是依赖注入DI的机制。
DI的全称是Dependency Injection,中文称之为依赖注入,它与控制反转(IOC)的含义相同,只不过这两个称呼是从两个角度描述的同一个概念。
在传统模式下,调用者通常会采用“new 被调用者”的代码方式来创建对象。
如图所示:
这种方式会导致调用者与被调用者之间的耦合性增加,不利于后期项目的升级和维护。
在使用Spring框架之后,对象的实例不再由调用者来创建,而是由Spring容器来创建,Spring容器会负责控制程序之间的关系,而不是由调用者的程序代码直接控制。
这样,控制权由应用代码转到了Spring容器,控制权发生了反转,这就是Spring的控制反转IOC。
本篇已经收纳于mikechen创作的《阿里架构师进阶专题合集》里面。
猜你喜欢
- 2024-10-15 BATJ面试必会之 Spring 篇(30题) 面试spring的面试题
- 2024-10-15 Spring知识点提炼 spring题
- 2024-10-15 springmvc的核心是啥,请求的流程怎么处理,控制反转怎么实现
- 2024-10-15 spring源码分析——spring大纲 spring源码分析和总结简书
- 2024-10-15 Spring思维导图,让Spring不再难懂(ioc篇)
- 2024-10-15 Spring框架介绍及使用 spring框架的使用步骤
- 2024-10-15 架构师必知必会:Java内置的控制反转机制-Service Provider
- 2024-10-15 轻松理解 Spirng IoC/控制方向反转
- 2024-10-15 什么是控制反转(ioc),通过解释总结告诉你
- 2024-10-15 搞透IOC,Spring IOC看这篇就够了
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- oraclesql优化 (66)
- 类的加载机制 (75)
- feignclient (62)
- 一致性hash算法 (71)
- dockfile (66)
- 锁机制 (57)
- javaresponse (60)
- 查看hive版本 (59)
- phpworkerman (57)
- spark算子 (58)
- vue双向绑定的原理 (68)
- springbootget请求 (58)
- docker网络三种模式 (67)
- spring控制反转 (71)
- data:image/jpeg (69)
- base64 (69)
- java分页 (64)
- kibanadocker (60)
- qabstracttablemodel (62)
- java生成pdf文件 (69)
- deletelater (62)
- com.aspose.words (58)
- android.mk (62)
- qopengl (73)
- epoch_millis (61)
本文暂时没有评论,来添加一个吧(●'◡'●)