说到Spring的核心思想Ioc和aop不是Spring提出来的,在Spring之前就已经存在,只不过更偏向理论化,Spring在技术层次把两个思想做了非常好的实现(java)

第一部分:什么是IOC IOC Inversion of Control (控制反转/反转控制),注意它是⼀个技术思想,不是⼀个技术实现 描述的事情:Java开发领域对象的创建,管理的问题 传统开发⽅式:⽐如类A依赖于类B,往往会在类A中new⼀个B的对象

IoC思想下开发⽅式:我们不⽤⾃⼰去new对象了,⽽是由IoC容器(Spring框架)去帮助我们实例化对象并且管理它,我们需要使⽤哪个对象,去问IoC容器要即可

我们丧失了⼀个权利(创建、管理对象的权利),得到了⼀个福利(不⽤考虑对象的创建、管理等⼀系列事情)

为什么叫做控制反转? 控制:指的是对象创建(实例化、管理)的权利 反转:控制权交给外部环境了(spring框架、IoC容器)

第二部分:IOC解决了什么问题

IoC解决对象之间的耦合问题(声明接口类型的属性比如 private UserDao userDao;面向的接口,并没有面向具体的实现类,不存在特别强度的耦合)

第三部分:IoC和DI的区别

DI:Dependancy Injection(依赖注⼊) 怎么理解: IOC和DI描述的是同⼀件事情,只不过⻆度不⼀样罢了