IOC(Inverse of Control ,控制反转)是spring的核心内核,AOP,声明式的事务等功能都在此基础上开花结果。其包含了很多内涵,涉及到代码的解耦,设计模式,代码优化等问题的考量。
控制反转,就是对于某一接口具体实现类的选择控制权从调用类中移除,转交给第三方决定,即由spring容器借助bean来进行控制。
由于IOC确实难以理解,最终提出了DI(依赖注入)的概念来代替IoC,即让调用类对某一接口的依赖关系由第三方(容器或者协助类)注入,以移除调用类对某一接口实现类的依赖。