您可以通过使用AOP(面向切面编程)来实现对Spring Boot接口的入参和出参进行打印。

首先,定义一个切面类,在该类中编写打印代码:

@Aspect
@Component
publicclass LogAspect {

    private static final Logger LOGGER = LoggerFactory.getLogger(LogAspect.class);

    @Pointcut("execution(public * com.example.controller.*.*(..))")
    public void log() {}

    @Before("log()")
    public void doBefore(JoinPoint joinPoint) throws Throwable {
        ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
        HttpServletRequest request = attributes.getRequest();
        LOGGER.info("请求URL : {}", request.getRequestURL().toString());
        LOGGER.info("请求方法 : {}", request.getMethod());
        LOGGER.info("请求IP : {}", request.getRemoteAddr());
        LOGGER.info("请求入参 : {}", Arrays.toString(joinPoint.getArgs()));
    }

    @AfterReturning(returning = "ret", pointcut = "log()")
    public void doAfterReturning(Object ret) throws Throwable {
        LOGGER.info("请求出参 : {}", ret);
    }

}
Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐