spring:控制反转
来源:互联网 发布:淘宝保暖卫衣长款 编辑:程序博客网 时间:2024/06/06 23:53
一、 ioc的思想
ioc的思想最核心的地方在于,资源不由使用资源的双方管理,而由不使用资源的第三方管理,这可以带来很多好处。第一,资源集中管理,实现资源的可配置和易管理。第二,降低了使用资源双方的依赖程度,也就是我们说的耦合度。
也就是说,甲方要达成某种目的不需要直接依赖乙方,它只需要达到的目的告诉第三方机构就可以了,比如甲方需要一双袜子,而乙方它卖一双袜子,它要把袜子卖出去,并不需要自己去直接找到一个卖家来完成袜子的卖出。它也只需要找第三方,告诉别人我要卖一双袜子。这下好了,甲乙双方进行交易活动,都不需要自己直接去找卖家,相当于程序内部开放接口,卖家由第三方作为参数传入。甲乙互相不依赖,而且只有在进行交易活动的时候,甲才和乙产生联系。反之亦然。这样做什么好处么呢,甲乙可以在对方不真实存在的情况下独立存在,而且保证不交易时候无联系,想交易的时候可以很容易的产生联系。甲乙交易活动不需要双方见面,避免了双方的互不信任造成交易失败的问题。因为交易由第三方来负责联系,而且甲乙都认为第三方可靠。那么交易就能很可靠很灵活的产生和进行了。
这就是ioc的核心思想。生活中这种例子比比皆是,支付宝在整个淘宝体系里就是庞大的ioc容器,交易双方之外的第三方,提供可靠性可依赖可灵活变更交易方的资源管理中心。另外人事代理也是,雇佣机构和个人之外的第三方。嗯,就这样,希望对题主有帮助。
==========================update===========================
在以上的描述中,诞生了两个专业词汇,依赖注入和控制反转
所谓的依赖注入,则是,甲方开放接口,在它需要的时候,能够讲乙方传递进来(注入)
所谓的控制反转,甲乙双方不相互依赖,交易活动的进行不依赖于甲乙任何一方,整个活动的进行由第三方负责管理。
这就是spring IOC的思想所在,不要只谈DI IOC这些概念。
人之所恶在好为人师,不实知,谨慎言。 他人有心,予忖度之.吾之谓也
二、下面是详细例子:
1、UserDao接口
- 1
- 2
- 3
- 4
2、下面是两个实现
UserDaoImp1 和 UserDaoImp2
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
3、下面是业务逻辑service
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
4、在main中调用
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
5、下面是配置文件
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
以上代码体现出了控制反转的好处:
如果想调用UserDaoImp2,就在配置文件中修改配置即可,很方便;
如果没有用控制反转:
那么UserDao就是在service中直接实例化,如下:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- Spring IOC 反转控制
- Spring-----> IOC(控制反转)
- spring之控制反转
- spring的控制反转
- Spring控制反转
- Spring控制反转
- spring之控制反转
- spring 控制反转
- Spring 控制反转
- Spring 控制反转
- Spring - 控制反转IOC
- Spring IoC[控制反转]
- Spring控制反转IOC
- spring 控制反转
- 模拟Spring控制反转
- Spring(一)--控制反转
- Spring的控制反转
- spring的反转控制
- B
- 11.4 总结
- 第八周——“对称矩阵压缩存储的实现与应用”
- OSI 七层 及相关协议
- 装饰器、迭代器、生成器
- spring:控制反转
- NIO-结合Selector设计一个简易WebServer
- 滑动条
- ButterKnife之@OnTouch——界面交互效果进阶
- 5.4
- 变量的声明
- git stash 命令用法
- PAT 1005. 继续(3n+1)猜想 (25)
- InfoGAN 论文阅读笔记 基本知识总结