1.1 什么是IoC?
IoC Inversion of Control (控制反转/反转控制),注意它是⼀个技术思想,不是⼀个技术实现。
描述的事情:Java开发领域对象的创建,管理的问题。
在传统的开发方式中,如果A依赖B, 我们一般在类A中new B对象。
但是,有IOC容器, 我们虽然失去了管理和创建对象的权利,但是也获得了不去管理和创建对象的福利。
为什么叫做控制反转?
控制:指的是对象创建(实例化、管理)的权利
反转:控制权交给外部环境了(spring框架、IoC容器)
1.2 IoC解决了什么问题
IoC解决对象之间的耦合问题
1.3 IoC和DI的区别
DI:Dependancy Injection(依赖注⼊)
怎么理解:
IOC和DI描述的是同⼀件事情,只不过⻆度不⼀样罢了
IOC:站在了对象的角度,对象的实例化和管理交给容器。比如,A依赖B,在A中声明B,用到B时,容器提供实例化后的B给对象A;
DI:站在容器的角度,容器会把对象依赖的其他对象注入(或者说送进去)。在A对象中声明了B,容器在实例化A对象的时候,因为声明了B,就需要容器把B注入给A。