IoC:Inversion of Control(控制反转)简称:反控,读作“反转控制”更好理解,这不是一种技术,而是一种思想,类似于MVC。
什么是IoC?就是将原来在程序中手动创建对象的控制权,交由Spring框架来处理。
何为正控?何为反控?在没用Spring时可称之为正控,正控就是若调用者需要使用某个对象,其自身就得负责改对象及改对象所依赖对象的拆功能键和组装。在用Spring之后,就有了反控,反控则是调用者只负责从Spring容器中获取需要使用的对象,不关心对象创建的过程,也不关心该对象依赖对象的创建以及依赖关系的组装,也就是把创建对象的控制权反转给了Spring框架。
对比:
DI:Dependency Injection(依赖注入)从字面上分析:IoC:指将对象创建,反转给了Spring容器。DI:指Spring创建对象的过程中,将对象依赖属性(常量,对象,集合)通过配置设值给对象。
Spring在底层就是通过反射和内省机制来实现其效果,方便开发者开发。