Spring-AOP通知类型
推荐先阅读
:Spring全家桶
AOP通知描述了抽取的共性功能,根据共性功能抽取的位置不同,最终运行代码时要将其加入到合理的位置
AOP通知共分为5种类型
- 前置通知@Before
- 后置通知@After
环绕通知(重点)@Around
- 返回后通知(了解)@AfterReturning
- 抛出异常后通知(了解)@AfteThrowing
@Before
:当前通知方法在原始切入点方法前
运行
|
@After
:当前通知方法在原始切入点方法后
运行
|
@Around
:当前通知方法在原始切入点方法前后
运行
|
@Around
注意事项:
- 环绕通知必须依赖形参ProceedingJoinPoint才能实现对原始方法的调用,进而实现原始方法调用前后同时添加通知
- 通知中如果未使用ProceedingJoinPoint对原始方法进行调用将跳过原始方法的执行
- 对原始方法的调用可以不接收返回值,通知方法设置成void即可,如果接收返回值,最好设定为Object类型
- 原始方法的返回值如果是void类型,通知方法的返回值类型可以设置成void,也可以设置成Object
- 由于无法预知原始方法运行后是否会抛出异常,因此环绕通知方法必须要处理Throwable异常
@AfterReturning
:当前通知方法在原始切入点方法正常
执行完毕后
运行
|
@AfteThrowing
:当前通知方法在原始切入点方法运行抛出异常后
执行
|