栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

SpringBoot的控制反转(IOC)和依赖注入(DI)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

SpringBoot的控制反转(IOC)和依赖注入(DI)

控制反转(IOC)

IOC,Inversion of Control,它是一种设计思想,指的是将原本在程序中由我们手动创建对象的控制权,在使用Spring后,将这个控制权交给Spring框架来管理,由Spring来负责控制对象的生命周期(比如创建、销毁)和对象间的依颗关系。

lOC由专门的容器来帮忙创建对象,将所有的类都放在Spring容器(DefaultListableBeanFactory, bean工厂)中,当我们需要某个对象的时候,不再需要自己主动去new了,只需告诉Spring容器。然后Spring 就会把对应的对象返回给你。

使用IOC的好处:

传统应用程序都是由我们在类内部主动创建依赖对象,从而导致类与类之间高度耦合;有了Spring IOC容器之后,把创建和查找依赖对象的控制权交给了容器,由容器进行依赖对象的注入。所以对象与对象之间是松散耦合,有利于功能复用。更重要的是使得程序的整个体系结构变得非常灵活。

lOC容器就像是一个工厂,当我们需要创建一个对象的时候,只需要配置好配置文件/注解即可,完全不用考虑对象是如何被创建出来的。例如。在实际项目中,一个Service接口可能依赖了很多其他接口,如果采用手动new依赖对象的话。我们需要搞清挂所有依赖对象的构造方法。使用了Spring框架之后,我们只需要配置好,然后在需要的地方引用就行。大大增加了项目的可维护性,而且降低了开发难度。

依赖注入(DI):

DI,Dependency lnjection,指的是应用程序在运行时依赖IOC容器来动态注入组件所需要的某个依赖对象。Spring 的DI具体就是通过反射实现注入的,反射允许程序在运行的时候动态的生成对象、执行对象的方法、改变对象的属性等。

理解DI的关键是:“谁依赖谁,为什么需要依赖,谁注入谁,注入了什么?

谁依赖于谁:应用程序依颗于IOC客器;

为什么需要依赖:应用程序需要IOC容器来提供组件需要的外部资源

谁注入谁:IOC容器注入应用程序某个对象,即应用程序依赖的对象

注入了什么:注入某个对象所需要的外部资源(包括对象、资源、常量数据)

好处:通过依赖注入。我们只需要通过简单的配置,而无需任何代码就可指定目标需要的资源,完成自身的业务逻辑,而不需要关心具体的资源来自何处,由谁实现。

总结:

控制反转是目标。依赖注入是我们实现控制反转的一种手段。

控制反转:控制反转:我们将创建对象的控制权交给了Spring。由Spring来控制对象的创建。

依赖注入:应用程序在运行时依赖IOC容器来动态注入组件所需要的某个依赖对象。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1014475.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号