aop切面重复调用两次controller
最近在测试接口时,总是调用两次,于是在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相关推荐
- java微信公众号短信验证码_解决微信端公众号网页获取短信验证码ajax重复调用两次的问题...
问题背景介绍: 微信公众号网页开发的时候,点击发送短信验证码,如果响应时间超长,目前测试是10秒左右(这个10秒左右,是我自己多次测试总结出来的规律) 超过10秒左右,就会自动请求第二遍,这个问题挺恶 ...
- spring拦截器传递传递参数到controller+Aop切面环绕方法传递参数到目标方法
一.前言 由于业务需要,在网上找了很久得到了这两种方式.本文代码偏少,主要讲解一下怎么传,如何接收,也记录一下,以便之后查看. 二.Spring拦截器传递参数到controller 下面是我拦截器中的 ...
- SpringMVC - HTTP 请求路径无错,但服务器端提示路径错误, Controller 值重复了两次
问题描述: 请求路径(无错):http://localhost:8080/lims-core/service/tms/template/addBean 但服务器端提示错误(与请求路径不一样): WAR ...
- Spring AOP切面使用详细解析
相关文章: SpringBoot AOP切面的使用 一步一步手绘Spring AOP运行时序图(Spring AOP 源码分析) 架构师系列内容:架构师学习笔记(持续更新)) Spring AOP 应 ...
- Multipart自定义资源限制文件大小限制设计——aop切面怎么才能切入Multipart的文件大小拦截?
Multipart自定义资源限制文件大小限制设计--aop切面怎么才能切入Multipart的文件大小拦截? author:陈镇坤27 创建时间:2022年1月23日 创作不易,转载请注明来源 摘要: ...
- aop springboot 传入参数_java相关:springboot配置aop切面日志打印过程解析
java相关:springboot配置aop切面日志打印过程解析 发布于 2020-3-31| 复制链接 摘记: 这篇文章主要介绍了springboot配置aop切面日志打印过程解析,文中通过示例代码 ...
- 切面是异步还是同步操作‘_【 .NET Core 3.0 】框架之十 || AOP 切面思想
本文有配套视频: https://www.bilibili.com/video/av58096866/?p=6 前言 上回<[ .NET Core3.0 ]框架之九 || 依赖注入IoC学习 + ...
- 【 .NET Core 3.0 】框架之十 || AOP 切面思想
本文有配套视频: https://www.bilibili.com/video/av58096866/?p=6 前言 上回<[ .NET Core3.0 ]框架之九 || 依赖注入IoC学习 + ...
- java 切面_实用|AOP切面编程手段大汇总
点击上方"欧学长的架构成长之路" 关注我 前言 首先说一下什么是AOP? AOP就是面向切面编程,它是一个思想,通过切面,我们可以将那些反复出现的代码抽取出来,放在一个地方统一处理 ...
- Springboot AOP切面
文章目录 SpringBoot Aop 切面(Aop) 一.什么是切面 二.切面的用途 三.AOP切面常用注解 四.详细内容 1.切面(Aspect) 2.连接点(Joinpoint) 3.通知(Ad ...
最新文章
- linux中使用yum安装主程序包,linux使用yum对程序包管理相关知识
- SQL:查询学习笔记
- CentOS7中解压tar包的方式安装Nginx
- 用软件测试管理效率,软件测试攻略(一):效率工具分享
- jetbrains ide连接服务器上的docker
- homebrew安装
- 进出仓原理_通达信浪口主图+窥窃天机副图+进出仓副图强强组合
- 秒懂 this(带你撸平this)
- 【转载】Android通过ksoap2调用.net(c#)的webservice
- matlab计算潮流,matlab潮流计算
- OJ之AAABBBCCC与ABCABCABC
- 为什么你挖不到漏洞,阿里P8架构师亲授秘籍(五千字详解)
- 电子元器件B2B电商平台建设方案:优化企业商流,拓宽B2B交易渠道
- 科达与中航工业签署战略合作协议
- 记flume部署过程中遇到的问题以及解决方法(持续更新)
- Python 怎么利用Python绘制二元高次隐函数的函数图像及其极值点——以某双核论文模型方程为例
- 4.K8s组件的使用
- .NET Framework(CLI,CLS,CTS,CLR,FCL,BCL)
- linux mq ebcdic,将字符串从EBCDIC转换为Unicode / UTF8
- 程序员IT好书评选结果出炉,20本图书俘获程序员芳心