最近在测试接口时,总是调用两次,于是在aop找原因

错误原因:在aop的@Around这个接口中出现了两次ProceedingJoinPoint.proceed(),于是我将该信息赋值给一个变量,后调用这个变量即可解决。

ProceedingJoinPoint.proceed()使用多少次,则会调用controller多少次!!!

因为不知其所以然,还请了解原因的前辈们告知原因。

附上代码

@Aspect
@Component
public class HttpLoggerRespect {private final Logger logger = LoggerFactory.getLogger(HttpLoggerRespect.class);@Pointcut("execution(public * com.bigdata.bigdata.controller..*(..))")public void logPointCut() {logger.debug("审计使用");}@Around("logPointCut()")public Object doAround(ProceedingJoinPoint pjp) throws Throwable {RequestAttributes ra = RequestContextHolder.getRequestAttributes();// result的值就是被拦截方法的返回值Object result =pjp.proceed(); ///错误原因导致1System.out.println(pjp.proceed()); ///错误原因导致2if(result instanceof ConstraintViolationException){throw new ConstraintViolationException(((ConstraintViolationException) result).getConstraintViolations());}return result;}
}

调用controller

@RestController
@RequestMapping("/user")
public class UserController {private static final Logger logger= LoggerFactory.getLogger(UserController.class);@PostMapping("/test")public Object postEvent(@RequestParam("name") String name) throws Exception {logger.info("接口进入");return "successs";}}

调用该接口

解决办法:

将上面的HttpLoggerRespect 上面的System.out.println(pjp.proceed());修改为System.out.println(result);即可。

原因的前辈们告知原因!!!抱拳

aop切面重复调用两次controller相关推荐

  1. java微信公众号短信验证码_解决微信端公众号网页获取短信验证码ajax重复调用两次的问题...

    问题背景介绍: 微信公众号网页开发的时候,点击发送短信验证码,如果响应时间超长,目前测试是10秒左右(这个10秒左右,是我自己多次测试总结出来的规律) 超过10秒左右,就会自动请求第二遍,这个问题挺恶 ...

  2. spring拦截器传递传递参数到controller+Aop切面环绕方法传递参数到目标方法

    一.前言 由于业务需要,在网上找了很久得到了这两种方式.本文代码偏少,主要讲解一下怎么传,如何接收,也记录一下,以便之后查看. 二.Spring拦截器传递参数到controller 下面是我拦截器中的 ...

  3. SpringMVC - HTTP 请求路径无错,但服务器端提示路径错误, Controller 值重复了两次

    问题描述: 请求路径(无错):http://localhost:8080/lims-core/service/tms/template/addBean 但服务器端提示错误(与请求路径不一样): WAR ...

  4. Spring AOP切面使用详细解析

    相关文章: SpringBoot AOP切面的使用 一步一步手绘Spring AOP运行时序图(Spring AOP 源码分析) 架构师系列内容:架构师学习笔记(持续更新)) Spring AOP 应 ...

  5. Multipart自定义资源限制文件大小限制设计——aop切面怎么才能切入Multipart的文件大小拦截?

    Multipart自定义资源限制文件大小限制设计--aop切面怎么才能切入Multipart的文件大小拦截? author:陈镇坤27 创建时间:2022年1月23日 创作不易,转载请注明来源 摘要: ...

  6. aop springboot 传入参数_java相关:springboot配置aop切面日志打印过程解析

    java相关:springboot配置aop切面日志打印过程解析 发布于 2020-3-31| 复制链接 摘记: 这篇文章主要介绍了springboot配置aop切面日志打印过程解析,文中通过示例代码 ...

  7. 切面是异步还是同步操作‘_【 .NET Core 3.0 】框架之十 || AOP 切面思想

    本文有配套视频: https://www.bilibili.com/video/av58096866/?p=6 前言 上回<[ .NET Core3.0 ]框架之九 || 依赖注入IoC学习 + ...

  8. 【 .NET Core 3.0 】框架之十 || AOP 切面思想

    本文有配套视频: https://www.bilibili.com/video/av58096866/?p=6 前言 上回<[ .NET Core3.0 ]框架之九 || 依赖注入IoC学习 + ...

  9. java 切面_实用|AOP切面编程手段大汇总

    点击上方"欧学长的架构成长之路" 关注我 前言 首先说一下什么是AOP? AOP就是面向切面编程,它是一个思想,通过切面,我们可以将那些反复出现的代码抽取出来,放在一个地方统一处理 ...

  10. Springboot AOP切面

    文章目录 SpringBoot Aop 切面(Aop) 一.什么是切面 二.切面的用途 三.AOP切面常用注解 四.详细内容 1.切面(Aspect) 2.连接点(Joinpoint) 3.通知(Ad ...

最新文章

  1. linux中使用yum安装主程序包,linux使用yum对程序包管理相关知识
  2. SQL:查询学习笔记
  3. CentOS7中解压tar包的方式安装Nginx
  4. 用软件测试管理效率,软件测试攻略(一):效率工具分享
  5. jetbrains ide连接服务器上的docker
  6. homebrew安装
  7. 进出仓原理_通达信浪口主图+窥窃天机副图+进出仓副图强强组合
  8. 秒懂 this(带你撸平this)
  9. 【转载】Android通过ksoap2调用.net(c#)的webservice
  10. matlab计算潮流,matlab潮流计算
  11. OJ之AAABBBCCC与ABCABCABC
  12. 为什么你挖不到漏洞,阿里P8架构师亲授秘籍(五千字详解)
  13. 电子元器件B2B电商平台建设方案:优化企业商流,拓宽B2B交易渠道
  14. 科达与中航工业签署战略合作协议
  15. 记flume部署过程中遇到的问题以及解决方法(持续更新)
  16. Python 怎么利用Python绘制二元高次隐函数的函数图像及其极值点——以某双核论文模型方程为例
  17. 4.K8s组件的使用
  18. .NET Framework(CLI,CLS,CTS,CLR,FCL,BCL)
  19. linux mq ebcdic,将字符串从EBCDIC转换为Unicode / UTF8
  20. 程序员IT好书评选结果出炉,20本图书俘获程序员芳心

热门文章

  1. 银行卡验证(四要素)和银行联行号查询
  2. 系列学习 Gateway 之第 3 篇 —— 过滤器 Filter,自定义全局过滤器
  3. 微信小程序之地图功能
  4. SVN和git的优缺点比较
  5. 教你如何轻松玩转自媒体淘客,赚大钱!
  6. php paypal 订单查询,php – 成功付款后如何从paypal获取交易详情
  7. 人工智能目前有哪些突破?
  8. 创客集结号:3D打印如何与中小学教育有机结合?
  9. 时间序列(数据分析)
  10. EtherCAT运动控制器的PLC编程(一) 直线插补