boot spring 打印请求参数_SpringBoot打印请求参数与响应参数

本文介绍了如何在SpringBoot中利用AOP的环绕通知实现请求参数和响应结果的打印。首先添加了lombok和spring-boot-starter-aop依赖,然后创建了一个WebLogAspect配置类,定义切点并编写环绕通知方法,使用ObjectMapper序列化参数和返回值,以便清晰地查看日志。
摘要由CSDN通过智能技术生成

前言

使用Aop的环绕通知实现

加入依赖

org.projectlombok

lombok

org.springframework.boot

spring-boot-starter-aop

编码

import com.fasterxml.jackson.databind.ObjectMapper;

import lombok.extern.slf4j.Slf4j;

import org.aspectj.lang.ProceedingJoinPoint;

import org.aspectj.lang.annotation.Around;

import org.aspectj.lang.annotation.Aspect;

import org.aspectj.lang.annotation.Pointcut;

import org.aspectj.lang.reflect.MethodSignature;

import org.springframework.context.annotation.Configuration;

@Aspect

@Configuration

@Slf4j

public class WebLogAspect {

ObjectMapper objectMapper = new ObjectMapper();

@Pointcut("execution(* com.gongj.mall.product.scenario.controller..*.*(..))")

public void webLog(){}

@Around(value = "webLog()")

public Object webLogAround(ProceedingJoinPoint joinPoint) throws Throwable {

String className = joinPoint.getTarget().getClass().getName();

MethodSignature signature = (MethodSignature)joinPoint.getSignature();

String methodName = new StringBuffer(className.replaceFirst("com.gongj.mall.", ""))

.append(".")

.append(signature.getMethod().getName())

.append("():").toString();

log.info("==========> {} Request Params:{}",methodName, objectMapper.writeValueAsString(joinPoint.getArgs()));

Object proceed = joinPoint.proceed();

log.info("==========> {} Return Message:{}",methodName,objectMapper.writeValueAsString(proceed));

return proceed;

}

}

其中几个方法进行介绍:

Object getTarget:获取被代理的对象

Signature getSignature:返回目标方法的签名对象

Object[] getArgs:返回目标方法的参数

Object proceed:执行目标方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值