IOC 控制反转是一种设计模式,是指创建对象的控制权的转移。以前创建对象的主动权和时机是由自己把控的,而现在这种权力转移到Spring容器中,并由容器根据配置文件去创建实例和管理各个实例之间的依赖关系。对象与对象之间松散耦合,也利于功能的复用 。最直观的表达就是,IOC让对象的创建不用去new了,可以由spring自动生产,使用java的反射机制,根据配置文件在运行时动态的去创建对象以及管理对象,并调用对象的方法的。
DI依赖注入和控制反转是同一个概念的不同角度的描述,DI是IOC的一种具体实现方式,它是通过注入依赖来实现对象之间的关系 依赖注入的方式有构造器,setter方法等
简而言之,IOC是一种思想或原则,它描述了对象控制权的转移,而DI是IOC的一种具体实现方式,它通过注入依赖来实现对象之间的关系