Spring IoC 概述
Posted boycelee
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring IoC 概述相关的知识,希望对你有一定的参考价值。
问题:
1.什么是依赖倒置?
2.什么是控制反转?
3.什么是依赖注入?
4.它们之间的关系是怎样的?
5.优点有哪些?
带着上面的5个问题,我们开始今天的学习。
依赖倒置原则 (Dependency Inversion Principle)
依赖倒置是一种设计原则。
依赖倒置包括三层含义:
(1)高层模块不应该直接依赖于底层模块,两者都应依赖其抽象;
(2)抽象不应依赖于细节;
(3)细节应该依赖于抽象。
控制反转 (Inversion of Control)
控制反转是一种思想。其核心思想在于,合作的对象依赖关系的管理不由具体对象来完成,而是具体对象交出依赖关系的控制权,由第三方容器来集中管理。
第三方容器管理的优点:
(1)依赖关系的集中管理,关系清晰且易管理;
(2)降低合作对象之间的耦合程度。
举个栗子。我想在北京租一间房子,我只需要把我的需求告知链家等中介公司,通过他们整合的资源,我就能够找到一间符合我需求的房子。我不需要与房东产生任何直接的关系,中间的任何问题都由链家进行统一处理。在这个例子中,房客与房东是两个独立的对象,而链家则是充当中间容器。
依赖注入(Dependency Inversion)
依赖注入是控制反转的具体方法之一。依赖注入就是将底层依赖对象以参数形式传入上层对象。
对象间的依赖关系的管理被反转至IoC容器中。对象间的依赖关系由IoC容器进行统一管理,并由IoC容器来完成对象的注入。
依赖倒置原则 、控制反转 、依赖注入的关系
优点
1.实现模块间松耦合
2.由IoC容器来统一管理依赖关系,对象从复杂的依赖关系中解放。
3.对象自身弄够专注于自身功能上,不需要了解依赖对象的内部结构。
参考
[1]https://en.wikipedia.org/wiki/Dependency_injection
[2]https://martinfowler.com/articles/injection.html
[3]https://www.zhihu.com/question/23277575
[4]《Spring技术内幕》
[5]《设计模式之禅》
以上是关于Spring IoC 概述的主要内容,如果未能解决你的问题,请参考以下文章
SSM框架Spring笔记 --- Spring概述;IOC控制反转详解
Spring 框架的概述以及Spring中基于XML的IOC配置