简账(开源记账软件)-解决AOP日志记录错误

本文介绍了在使用AOP记录日志时遇到的请求参数为空的问题,详细复现了问题,并通过调试发现`request.getParameterMap()`无法获取到`Request Payload`的参数。解决方案是通过获取请求流并解析,实现过程中遇到了流被消耗导致的异常,最终通过自定义过滤器成功解决,实现了日志的正确记录。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

在看日志表的时候,发现请求参数全是空的。就在想肯定是哪里出现问题了,下面就是我的解决问题的一些思路

往期链接

一、问题复现

经过测试,请求下面这个接口可以稳定重现此问题

image.png

数据库记录如下所示:

image.png

二、解决问题

既然能稳定重现,那么解决问题也就不会太困难了。

相关代码

使用AOP记录日志主要部分的代码如下所示:
切面类

@Component
@Aspect
@Slf4j
public class LogAspect implements Ordered {
   
   
    // 执行顺序,越小越先执行(遵从同心圆的概念)
    private final int order = 100;

    @Pointcut("@annotation(cn.jackbin.SimpleRecord.common.anotations.CommonLog)")
    public void doHandler(){
   
   

    }

    /**
     * 处理请求后执行
     */
    @AfterReturning(pointcut = "doHandler()", returning = "jsonResult")
    public void doAfterReturning(JoinPoint joinPoint, Object jsonResult
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值