IoC 和AOP
loC
创建对象。依赖注入。
loC是Spring全家桶各个功能模块的基础,创建对象的容器。
AOP以loC为基础, AOP是面向切面编程,抽象化的面向对象。
AOP
- 打印日志
- 事务
- 权限处理
loC
控制反转,使用loC的开发者不再需要创建对象,而是由loC容器根据需求自动创建项目所需要的对象。
- 实现:xml解析 + 反射
- 基于XML
基于注解
- 配置类
- 扫包 + 注解 :直接将bean的创建交给目标类, 在目标类添加注解@Component来创建。
AOP
核心业务和非业务代码的解耦合
- 把重复代码抽出来,提供代码的扩展性和可维护性。eg. 将日志代码全部抽象出去统一进行处理。
eg.如图:计算器对象和切面对象生成动态代理对象,对代理进行编程。
步骤
- 创建切面类
- 实现类添加Component注解
- 配置自动扫包,开启代理
tips: - 代理对象的类型是接口,不是XXlmpl
- 一个切面只能生成一个目标类的代理,必须保证,接口只有一个实现类。