ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

3.24 切面发布-环绕通知

2020-10-28 17:32:10  阅读:236  来源: 互联网

标签:-- 通知 ProceedingJoinPoint 方法 3.24 环绕 retVal 切面


戴着假发的程序员出品  抖音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 }

测试:

注意,如果目标方法出现异常程序中断,环绕通知就会只执行前半部分,后半部分就会执行。

标签:--,通知,ProceedingJoinPoint,方法,3.24,环绕,retVal,切面
来源: https://www.cnblogs.com/jiafa/p/13892274.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有