【Java高级工程师蜕变之路】008 Spring核心思想
IOC
ioc不是spring提出的,spring只是ioc的一个实现
什么ioc
ioc(inversion of control)控制反转,他是一个技术思想,不是技术实现
ioc是做什么的
java领域对象的创建、管理问题
传统开发方式:类A依赖类B,在类中创建一个类B的对象
IOC开发方式:不需要创建对象,由容器帮忙创建对象并返回,需要哪个对象告诉IOC容器,由容器返回即可
利弊:失去了创建对象的权利,但是同时也得到了不需要管理对象创建、依赖等一系列好处
为什么叫控制反转
控制:对象的创建管理和实例化的权利
反转:控制权交给IOC容器了
IOC解决了什么问题
ioc解决了对象之间的耦合问题
IOC和DI的区别
DI:Dependency Injection 依赖注入
IOC和DI描述的是同一件事情(对象实例化以及依赖关系管理),角度不同
IOC站在对象角度,对象实例化和管理法人权利交给了容器
DI是站在容器的角度,容器会把对象依赖的其他对象注入
AOP
什么是AOP
Aspect oriented programming 面向切面编程
AOP是OOP的眼神
OOP三大特征:封装、继承、多态
OOP是垂直纵向继承体系
OOP可以解决大部分情况下的代码重复问题,但是有些问题解决不了
横切逻辑代码的问题
-
代码重复
-
横切代码和逻辑代码混合在一起,不利于维护
AOP可以解决
AOP解决了什么问题
在不改变原有代码逻辑的情况下,增强横切逻辑代码,根本上解耦合,解决代码重复问题
为什么叫面向切面编程
切:横切逻辑,原有逻辑代码不能动,只能操作横切逻辑
面:横切逻影响很多方法,每个方法是一个点,多个点构成面