Java面试-Spring IOC(控制反转)和DI(依赖注入)
2016-10-04 23:18
471 查看
IOC
Ioc(Inversion of Control)翻译成中文就是“控制反转”,一个比较晦涩的词语。如果要真正理解这个词语,必须要用过Spring框架才行,因为Spring开启了一种新的编程方式。传统的编程方式: 所有的对象和资源都是由开发人员来控制,由你来决定什么时候new一个对象,什么时候申请资源、使用资源、释放资源。
使用Spring框架: 开发人员提供一个清单给Spring,然后对象的整个生命周期都是由Spring框架来管理,一个对象中引用的资源、引用的其他对象也都是由Spring框架来管理。
深入剖析一下“控制反转”这个词:
控制: 控制指的是控制外部资源的获取、控制对象的生命周期。
反转: 刚开始流行的是由开发人员操纵一切,现在变了,由Spring框架来控制程序中的外部资源、控制对象的生命周期等。所以取名“反转”,即控制的权利由开发人员转移到了Spring框架。由Spring框架帮我创建我们对象中依赖的对象,我们的对象只能被动的接受。
IOC的好处就是解耦,对象和对象之间的耦合度变低了,便于测试、便于功能复用。
DI
DI(Dependency Injection)翻译成中文叫做“依赖注入”,既然对象的整个生命周期都是由Spring框架来维护的,那么我的这个对象中引用了另一个对象,你打算怎么办?Spring框架自然考虑到这一点了。“依赖注入”这两个词语也要拆开来讲:依赖: 我的A对象中引用了B对象,也就是说A对象依赖B对象。你要通过配置文件告诉Spring你的对象之间的依赖关系。
注入: 你的对象已经交给Spring管理了,你也告诉Spring你的对象之间的依赖关系了,那么在合适的时候,由Spring把你依赖的其他对象(或者资源、常量等)注入给你。
总结就是,把所有的控制权交给Spring,由Spring帮你创建对象、帮你维护对象之间的依赖关系。
相关文章推荐
- 【Spring】Spring的IOC(控制反转)/DI(依赖注入)原理(一):用到“反射”编程
- Spring的IoC(控制反转) 、DI(依赖注入)
- Spring_控制反转(IOC)/依赖注入(DI)
- Spring---IOC(控制反转)和DI(依赖注入)
- Spring的IOC(控制反转)和 DI(依赖注入)机制
- Spring的Ioc(控制反转)和DI(依赖注入)
- Spring_01 spring容器、控制反转(IOC)、依赖注入(DI)
- Spring-IOC(控制反转)+DI(依赖注入)
- Spring IoC(控制反转)和DI(依赖注入)的理解
- (转)关于spring的两个概念:IoC(控制反转) ,DI(依赖注入)
- 【Spring】Spring的IOC(控制反转)/DI(依赖注入)原理(三):Spring启动加载配置文件源码分析
- Spring学习3—控制反转(IOC)Spring依赖注入(DI)和控制反转(IOC)
- spring IOC(控制反转)和DI(依赖注入)以及三种依赖注入方式的比较
- 【转】跟我一起学Spring 3(4)–深入理解IoC(控制反转)和DI(依赖注入)
- Spring——DI(依赖注入)/Ioc(控制反转)
- spring(3)------控制反转(IOC)/依赖注入(DI)
- Spring IoC和DI(反转控制和依赖注入)原理
- Spring IoC(控制反转)和DI(依赖注入)的理解
- Spring IOC(控制反转)和DI(依赖注入)
- Spring(1)初识Spring+IOC(控制反转)+DI(依赖注入)(附:快速入门案例)