Java-Spring复习-AOP

1. AOP 和 相关术语

AOP(Aspect Oriented Programming,即 面向切面编程)

  • 在外部编写代码而不侵入原始代码层,使其增加额外功能
  • 应用场景:权限、缓存、内容传递、错误处理、懒加载、调试、记录跟踪、性能优化、持久化、资源池、同步、事务、日志

AOP 相关术语

  • 关注点:根据功能划分系统的一部分
  • 横切关注点:系统中每个业务都实现的功能,即这个关注点横切了整个系统
  • 连接点:Spring中指被拦截到的方法
  • 切面:是一个类,里面定义了切点和通知
  • 切点:带有通知的连接点,利用切入点表达式实现切入
  • 通知:切点上执行的增强处理

雷神的图
Java-Spring复习-AOP

2. 通知的类型

  • Before:在目标方法被调用之前做增强处理
  • AfterReturning:在目标方法完成后增强
  • AfterThrowing:处理执行过程中未处理的异常
  • After:在目标方法完成之后做增强,无论目标方法是否成功完成
  • Around:在目标方法完成前后做增强处理,和动态代理写法一样

基于注解的Spring AOP使用方法,参见
Spring AOP教程