AOP 是什么
- 是一种编程方式,不是编程语言
- 解决特定问题()
- 理解: 避免在业务相关代码中混入过多的系统相关的逻辑(比如 权限管理,事务管理,日志记录等),
他们都是独立的,直接通过AOP技术切入系统中
AOP 初衷
-
DRY: Don’t repeat yourself(代码重复)
*有两个业务,都需要调用相同的接口来验证,这时就需要copy两次相同的接口实现代码.从而引入了AOP技术 把方法注入到接口调用的某个切点,这样我们只需要管具体的逻辑业务.
-
SoC:Separation of Concerns(关注点分离)
* 水平分离:展示层-> 服务层 -> 持久层 * 垂直分离:模块划分(订单、库存等) * 切面分离:分离功能性需求与非功能性需求
AOP的优点
- 集中处理某一关注点/横切逻辑
- 可以很方便地添加/删除关注点
- 侵入性少,增强代码可读性及可维护性
AOP的应用场景
- 权限控制
- 缓存控制
- 性能监控