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框架概述搭建和IOC

Spring框架学习-Spring和IOC概述

Spring 框架的概述以及Spring中基于XML的IOC配置

Spring学习笔记1:Spring概述( IOC与DI )

Spring IOC 概述