设为首页 加入收藏

TOP

控制反转和依赖注入
2019-05-11 00:03:38 】 浏览:38
Tags:控制 反转 依赖 注入
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/csdnliuxin123524/article/details/81534160

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

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

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

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

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

什么是IOC

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

什么是DI

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

image.png

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

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Scala的集合综述 下一篇在VM10虚拟机里的Centos7上安装jdk

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目