探秘Spring AOP
一、走进面向前面编程

二、什么是AOP
1、是一种编程范式,不是编程语言
2、解决特定问题,不能解决全部问题
3、是OOP的补充,不是替代
三、AOP的初衷
1、解决Don't Repeat Yonrself
DRY原则,代码重复性问题java
2、解决Separation of Concerns
SoC关注点分离c++
- 水平分离:展现层 -> 服务层 ->持久层
- 垂直分离:模块划分(订单,库存等)
- 切面分离:分离功能性需求与非功能性需求
四、AOP的好处
1、集中处理某一关注点、横切逻辑
2、能够很方便的添加、删除关注点
3、 侵入性少、加强代码可读性及可维护性
五、AOP的应用场景
1、权限控制
2、缓存控制
3、事务控制
4、审计日志
5、性能监控
6、分布式追踪
7、异常处理
六、AOP支持编程语言
java,.net,c/c++,Ruby,Python,PHP .......编程