网站首页 > 文章精选 正文
@Around 环绕通知-增强方法有 ProceedingJoinPoint 参数
在目标方法执行之前之后执行。被注解为环绕增强的方法要有返回值, Object 类型。并且方法可以包含一个 ProceedingJoinPoint 类型的参数。接 口 ProceedingJoinPoint 其有一个 proceed()方法,用于执行目标方法。若目 标方法有返回值,则该方法的返回值就是目标方法的返回值。最后,环绕增强 方法将其返回值返回。该增强方法实际是拦截了目标方法的执行。
/**
* @Around:环绕通知
* 属性:value 切入点表达式
* 位置:在方法定义的上面
*
* 返回值:Object ,表示调用目标方法希望得到执行结果(不一定是目标方法自己的返回值)
* 参数: ProceedingJoinPoint, 相当于反射中 Method。
* 作用:执行目标方法的,等于Method.invoke()
*
* public interface ProceedingJoinPoint extends JoinPoint {}
*
* 特点:
* 1.在目标方法的前和后都能增强功能
* 2.控制目标方法是否执行
* 3.修改目标方法的执行结果。
*/
@Around("execution(* *..SomeServiceImpl.doFirst(..))")
public Object myAround(ProceedingJoinPoint pjp) throws Throwable {
//获取方法执行时的参数值
String name = "";
Object args [] = pjp.getArgs();
if( args != null && args.length > 0){
Object arg = args[0];
if(arg !=null){
name=(String)arg;
}
}
Object methodReturn = null;
System.out.println("执行了环绕通知,在目标方法之前,输出日志时间=="+ new Date());
//执行目标方法 ProceedingJoinPoint,表示doFirst
if("lisi".equals(name)){
methodReturn = pjp.proceed();//method.invoke(),表示执行doFirst()方法本身
}
if( methodReturn != null){
methodReturn ="环绕通知中,修改目标方法原来的执行结果";
}
System.out.println("环绕通知,在目标方法之后,增加了事务提交功能");
//return "HelloAround,不是目标方法的执行结果";
//返回目标方法执行结果。没有修改的。
return methodReturn;
}
- 上一篇: 网络试验系列——证明Telnet不安全
- 下一篇: 拒绝躺平,如何使用AOP的环绕通知实现分布式锁
猜你喜欢
- 2025-05-28 科蓝软件:2024年年度股东大会决议公告
- 2025-05-28 浩辰软件:2024年年度权益分派实施公告
- 2025-05-28 网达软件:第五届监事会第二次会议决议公告
- 2025-05-28 中望软件:2024年年度股东大会决议公告
- 2025-05-28 普联软件:第四届董事会第二十三次会议决议公告
- 2025-05-28 拦截、下架!微信最新公告
- 2025-05-28 吉利银河APP服务异常,官方道歉
- 2025-05-28 东华软件:2024年年度股东大会决议公告
- 2025-05-28 新点软件:第二届董事会第十五次会议决议公告
- 2025-05-28 格尔软件:2024年年度股东大会决议公告
- 最近发表
- 标签列表
-
- newcoder (56)
- 字符串的长度是指 (45)
- drawcontours()参数说明 (60)
- unsignedshortint (59)
- postman并发请求 (47)
- python列表删除 (50)
- 左程云什么水平 (56)
- 计算机网络的拓扑结构是指() (45)
- 编程题 (64)
- postgresql默认端口 (66)
- 数据库的概念模型独立于 (48)
- 产生系统死锁的原因可能是由于 (51)
- 数据库中只存放视图的 (62)
- 在vi中退出不保存的命令是 (53)
- 哪个命令可以将普通用户转换成超级用户 (49)
- noscript标签的作用 (48)
- 联合利华网申 (49)
- swagger和postman (46)
- 结构化程序设计主要强调 (53)
- 172.1 (57)
- apipostwebsocket (47)
- 唯品会后台 (61)
- 简历助手 (56)
- offshow (61)
- mysql数据库面试题 (57)