AOP 即面向切面编程(Aspect Oriented Programing),实际上是将一些通用的功能横向抽取出来:
- 一方面,减少系统的重复代码
- 另一方面,降低模块间的耦合度,比较好维护和扩展
Spring AOP 将应用分为核心关注点和横切关注点。业务处理流程为核心关注点,被业务所依赖的公共部分为横切关注点。横切关注点的特点是其行为经常发生在核心关注点多出,而多处操作基本相似,比如权限认证、日志、事务等。AOP 的核心思想是将核心关注点和横切关注点分离开来,以降低模块耦合度。
Spring AOP 的应用场景主要有:
- 权限统一管理授权
- 缓存统一维护