AOP失效的原因之一(踩坑)

2023-11-13

背景

项目需求,需要检测其他同事的部分功能,自然想到的切面编程,按照网上的流程,很容易就完成了AOP的触发,但最近突然发现,之前的一个AOP突然就失效了

切面代码

@AfterReturning(pointcut = "save()", returning = "result")
publicvoid afterApiChange(JoinPoint joinPoint, SwaggerResultUtil<String> result) {
    // 业务代码
}

切点代码

public SwaggerResultUtil<Object> save() {
    // 业务代码
}

原因分析

这里和网上说的乱七八糟的都没关系,是因为最初返回值的泛型是String,后来那个同事业务需求,返回值泛型变成了Object,导致AOP匹配不上

解决方法

将泛型去掉

@AfterReturning(pointcut = "save()", returning = "result")
publicvoid afterApiChange(JoinPoint joinPoint, SwaggerResultUtil result) {
    // 业务代码
}

解决思路(后记)

之所以能发现,是因为考虑到之前是OK的,突然不行,自己切面代码又没变化,出问题的点大概率是对方,然后看对方的提交记录,重点看最近的差异点,一点点还原测试,最终找到这个坑。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

AOP失效的原因之一(踩坑) 的相关文章

随机推荐

  • 请收藏——QKL123!它能帮你挖掘项目价值(附2019年3月排行榜)

    QKL123区块链排行榜包括区块链项目 区块链交易平台 区块链媒体 区块链公众号 区块链矿机 区块链矿池 EOS Dapp ETH Dapp 区块链钱包九大榜单 相对第二期 2019年02月 榜单 该期首次新增ETH Dapp排行榜 并改进
  • 今天给大家分享一个绘图的 RGB COLOR TABLE

    如果大家觉得有用 就点个赞让更多的人看到吧
  • unity 触摸屏幕

    if Event current type EventType MouseDown 这里写鼠标按下 屏幕触摸按下 的代码 if Event current type EventType MouseDrag 这里写鼠标拖动 屏幕触摸滑动 的代
  • docker学习笔记--狂神

    Docker入门 Docker能做什么 虚拟机技术 虚拟机技术缺点 资源占用十分多 冗余步骤多 启动很慢 容器化技术 容器化技术不是模拟的一个完整的操作系统 比较Docker 和 虚拟机技术不用 传统虚拟机 虚拟出一条硬件 运行一个完整的操
  • springboot+mybatis实现多数据源

    1 前言 最近做项目碰到了一个需要连4个不同数据库的需求 其中db1 db2表结构都不相同 另外两个数据库same db private same db public表结构完全相同 一个对内一个对外 只是从物理上隔离了数据而已 所以打算通过
  • # Arduino小车PID调速——整定参数初试水

    Arduino小车PID调速 整定参数初试水 在实现了小车较为可靠的测速基础上 便可以正式开展PID调速实验了 本文是基于使用Arduino平台上由Brett Beauregard大神写的PID库进行参数整定的 侧重于在对PID算法有基本了
  • ubuntu下安装Docker

    ubuntu下安装Docker 注意 由于Docker需要在Linux Kernel 3 8及以上才可以很好的工作 本人在ubuntu12 04 lts 内核3 2也正常安装 官方更是推荐Ubuntu系统 这里有两种选择 Ubuntu 12
  • go语言面试题:简述bitmap的应用场景有哪些

    数据库索引 用来高效地进行数据查询 Web 日志分析 用来统计访问者信息 布隆过滤器 用来判断一个元素是否属于集合 缓存位图 用来高效地实现缓存管理 图像处理 用来表示和操作图像数据
  • 在服务器设置中smtp协议是指什么,outlook中的smtp协议具体是指什么

    outlook中smtp协议是指应用层的服务 可以适用于各种网络系统 outlook是微软办公软件套装的组件之一 它对windows自带的outlook express的功能进行了扩充 学习视频分享 编程视频 详细说明 Microsoft
  • ntp服务器超时无响应,设备从ntpd获取时间,但“ntpq -p”命令正在等待超时

    在我们的代码中 我们使用ntpd从服务器获取时间并设置时间 执行ntpd命令后 我们运行 ntpq p 来检查服务器偏移量 我们在不同的进程中运行ntpd的命令 并在完成ntpq之后运行 设备从ntpd获取时间 但 ntpq p 命令正在等
  • 祝福 Eric 的下一段旅程|Flutter 3.3 现已发布

    Flutter 团队及社区成员们在美丽的城市挪威奥斯陆向您发来问候 我们正在此参加社区举办的 Flutter Vikings 活动 这是一个为期两天的开发技术交流盛会 虽然线下门票已经售罄 但您还可以通过在线方式查看本次会议 本周 我们也有
  • wpf拖拽图片,滚轮放大缩小

    WPF提供了很多函数方便我们处理图片 例如各式各样的Transform类用来移动 缩放和旋转图片 有各式各样的Effect类来修改图片的外观 更难得的是 这些类都可以在XAML代码直接设置 而XAML为了提高代码的可维护性 又为我们提供了R
  • 工作3个月,我的测试工作感悟

    项目感想 经过将近3个月以来的迭代版本的测试 这段时间以来的工作和以前有点不同 迭代版本时间紧 任务重 同时对质量的要求更高 每天的工作时间安排的非常紧 一个星期的任务需要完成这个星期的测试任务 同时回归上个星期的bug 这样的工作流程 我
  • python 实现炸金花小游戏

    python 实现炸金花小游戏 本文章在学习python中进行的练习小游戏 目的是为了让学习者熟悉python中的列表 字典 集合等数据操作 游戏规则 一付扑克牌 去掉大小王 每个玩家发3张牌 最后比大小 看谁赢 有以下几种牌 豹子 三张一
  • JAVA构造器

    构造器是类中的一个特殊的方法 定义时不能加返回值类型 如果加了返回值类型就会变成一个普通的方法 并且方法名和类名相同 构造器的作用是初始化对象 new关键字才是创建对象
  • PAT B1059 C语言竞赛

    这是PAT考试乙级题库1059题的思路 include
  • 前端报错duplicate attribute

    前端报错duplicate attribute 当出现这个错误的时候就预示着同一个属性在一个标签对里面重复出现了两遍 删掉一个就好了
  • 田忌赛马java代码算法,Java贪心算法: 田忌赛马

    import java util Scanner import java util List import java util ArrayList import java util Collections public class Main
  • 时序预测

    时序预测 MATLAB实现ARIMA时间序列预测 GDP预测 目录 时序预测 MATLAB实现ARIMA时间序列预测 GDP预测 预测效果 基本介绍 模型设计 模型分析 学习总结 参考资料 预测效果 基本介绍 GDP是英文Gross Dom
  • AOP失效的原因之一(踩坑)

    背景 项目需求 需要检测其他同事的部分功能 自然想到的切面编程 按照网上的流程 很容易就完成了AOP的触发 但最近突然发现 之前的一个AOP突然就失效了 切面代码 AfterReturning pointcut save returning