控制反转和依赖注入

控制反转和依赖注入控制反转和依赖注入

大家好,又见面了,我是你们的朋友全栈君。

控制反转是通过工厂类,把实现类的方法通过其实现的接口进行调用,并通过扫描所有的@Service注解找到这些类,把他们交给spring容器管理。

依赖注入:是动态的将依赖对象注入到bean组件

单独的讲其中一个不好理解,实际使用一般是:在启动工程时,如果是非懒加载,spring容器会自动扫描特定包下面所有带@Service注解的类,然后通过@Autowire注解注入前面扫描类的实现接口,调用相应方法。

 

控制反转是一种思想,跟依赖注入其实是一个东西,只不过现有控制反转的说法,再有依赖注入。

 

*下面这个网友举的控制反转例子很形象说明了这种思想:

什么是IOC

IOC即控制反转。我们模拟一个场景,小明生在红旗下长在春风里,是咱们社会主义接班人。小明是当今社会自由恋爱的践行者,他可以选择和他喜欢的姑娘约会恋爱,父母也没权干涉(儿大不由娘啊)。但是天有不测风云,一天小明醒来发现自己穿越了(至于怎么穿越我也不知道啊),穿越到了古代,这下蛋疼了,小明的婚姻大事只能听从父母之言媒妁之约,一下子婚姻恋爱主权由自己控制转变为父母和媒人控制了。虽然例子有点荒诞,但却很好的说明了什么是控制反转。对应在编程世界,我们原先需要对象(不是女朋友啊,是Object),一般都是主动new出,这是控制正转,到spring这就不行了,你想要对象实例,ok,你必须通过请求(注解或xml配置方式)获取到对象实例,所有的实例对象由IOC容器管理。

什么是DI

 

 

DI即依赖注入。依赖注入的概念其实和控制反转本质是一样的。只是解读的维度不一样。我们用下面一张图示意一下

控制反转和依赖注入

image.png

看到了吗?小明在古代娶媳妇儿依赖父母和媒人,而在自由恋爱的现代社会需要自己找(new)。好像这么看来自由恋爱更好吧。小伙子你还是太年轻了,自由恋爱你得花心思找个顺眼的姑娘吧,得了解她吧,得花时间和金钱追求她吧,没准时不时还给你点小脾气。但是古代就不一样了,您老就直接等着入洞房了咯(此处应有猥琐的表情),至于如何找到姑娘,如何谈判(对应的类实例就是配置属性),完全不用管,很牛叉有木有!!

 

 

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/106056.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • Hwclock_clock命令

    Hwclock_clock命令hwclock(hardwareclock)功能说明:显示与设定硬件时钟。语  法:hwclock[–adjust][–debug][–directisa][–hctosys][–show][–systohc][–test][–utc][–version][–set–date=<日期与时间>]补充说明:在Linux中有硬件时钟与系统时钟等两种时钟。硬件时钟是…

    2022年10月28日
  • dm368流程_dm code

    dm368流程_dm codehttp://www.ahcit.com/?p=4038

  • contextConfigLocation加载「建议收藏」

    contextConfigLocation加载「建议收藏」&lt;context-param&gt; &lt;param-name&gt;contextConfigLocation&lt;/param-name&gt; &lt;param-value&gt; classpath:applicationContext.xml &lt;/param-value&gt;&lt;/context-param&gt;只加载类路径下的ap…

  • Fiddler抓取视频数据「建议收藏」

    准备工作:(1)、手机(安卓、ios都可以)/安卓模拟器,今天主要以安卓模拟器为主,操作过程一致。(2)、抓包工具:Fiddel下载地址:(https://www.telerik.com/download/fiddler)(3)、编程工具:pycharm(4)、安卓模拟器上安装抖音(逍遥安装模拟器)一、fiddler配置在tools中的options中,按照图中勾选后点击Actio…

  • landsat 卫星波段组合以及envi下的展示

    landsat 卫星波段组合以及envi下的展示LandsatTM(ETM+)7个波段可以组合很多RGB方案用于不同地物的解译,Landsat8的OLI陆地成像仪包括9个波段,可以组合更多的RGB方案。OLI包括了ETM+传感器所有的波段,为了避免大气吸收特征,OLI对波段进行了重新调整,比较大的调整是OLIBand5(0.845–0.885μm),排除了0.825μm处水汽吸收特征;OLI全色波段Band8波段范围较窄,这种方式

  • linux快捷键(mac版)

    linux快捷键(mac版)控制台快捷键command+a:回到命令开头command+e:回到命令结尾command+u:删除前面所有内容vim快捷键普通模式移动到第一行:gg移动到最后一行:G移动到第几行:数字+G向下移动几行:数字+enter到当前行第几个字符:数字+space查找字符串:/+字符串ZZ显示行号:(:setnu)替换:(:n1,n2/s/word1/word2/gc),$s代表行尾撤销/重做:u/ctrl+rnyy:向下复制多行p:在下一行粘

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号