1.控制反转(Inversion of Control) 和依赖注入(Dependecy Injection) 是同一个概念,具体的讲:当某个角色需要另外一个角色协助的时候,在传统的程序设计过程中,通常由调用者来创建被调用者的实例。但在 Spring 中 创建被调用者的工作不再由调用者来完成,因此称为控制反转。创建被调用者的工作由 Spring 来完成,然后注入调用者因此也称为依赖注入。 2.IOC 是目的,DI 是手段。IOC 是指让生成类的方式由传统方式(new)反过来,既程序员不使用 new,需要类的时候由框架注入(DI),是同一件事不同层面的解读。 3.其实,它就是一种将调用者与被调用者分离的思想。 4.意义:降低了组件之间的耦合性,不需要考虑对象间复杂的耦合关系就能从IOC容器中获取需要的对象,实现了软件各层之间的解耦,极大的降低了开发的负责性。