3.24 切面发布-环绕通知
Posted jiafa
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了3.24 切面发布-环绕通知相关的知识,希望对你有一定的参考价值。
戴着假发的程序员出品 抖音ID:戴着假发的程序员 欢迎关注
[查看视频教程]
所谓环绕通知就是在目标方法的前后可以通知增强,正因为这样的情况,所以环绕通知可以阻止方法的执行,或者修改方法的返回值。
环绕通知也可以传入一个参数ProceedingJoinPoint,ProceedingJoinPoint 是Joinpoint的一个子类,增强了一些方法,我们可以通过ProceedingJoinPoint 的proceed()调用被增强方法。
看案例:
修改Aspect类,在其中增加一个环绕通知:
1 /** 2 * @author 戴着假发的程序员 3 * 4 * @description 5 */ 6 @Component 7 @Aspect 8 public class DkAspect { 9 @Pointcut("execution(* com.st.dk.demo8.service..*.*(..))") 10 public void pointcut1(){} 11 12 /** 13 * 环绕通知,传入参数ProceedingJoinPoint 14 * */ 15 @Around("pointcut1()") 16 public Object around(ProceedingJoinPoint joinPoint){ 17 Object retVal = null; 18 System.out.println("--环绕通知开始--"); 19 //执行目标方法 20 try { 21 //这里可以根据条件判断是否要执行目标方法 22 retVal = joinPoint.proceed(); 23 //可以修改目标方法返回值 24 retVal = "环绕通知修改后的返回值"; 25 } catch (Throwable throwable) { 26 throwable.printStackTrace(); 27 } 28 System.out.println("--环绕通知结束--"); 29 return retVal; 30 } 31 }
测试:
注意,如果目标方法出现异常程序中断,环绕通知就会只执行前半部分,后半部分就会执行。
以上是关于3.24 切面发布-环绕通知的主要内容,如果未能解决你的问题,请参考以下文章