Spring的依赖注入(Dependency Injection DI)与控制反转(Ioc)含义相同。但是相对于的主体不同。
1.IoC/DI的产生
传统模式下,当某个Java对象(调用者)需要调用另一Java对象(被调用者),会使用new 被调用者来创建实例,但是这会使调用者和被调用者之间耦合增加,不利于维护升级。
2.Ioc和DI
使用Spring框架以后
从调用者和被调用者角度看:对象实例不再由调用者创建,而由Spring容器(一般为ApplicationContext容器)创建,控制权从调用者的程序代码转移到了Spring容器,控制权发生了反转,即Ioc控制反转。
从Spring容器的角度看:Spring容器负责将被调用对象(被依赖对象)赋值给调用者的成员变量,相当于为调用者注入了被依赖对象。即DI 依赖注入。