package cn.hyperchain.carbondriver.config;
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.stereotype.Component;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
import javax.servlet.http.HttpServletRequest;
import java.lang.reflect.Method;
import java.util.Arrays;
/**
* @author by dsy
* @Classname RequestParamAspect
* @Description 打印请求方法和入参
* @Date 2022/8/30 14:21
*/
@Slf4j
@Aspect
@Component
public class RequestParamAspect {
@Pointcut("execution(public * cn.hyperchain.carbondriver.modular.controller..*.*(..))")
public void requestAspect() {
}
@Around("requestAspect()")
public Object methodBefore(ProceedingJoinPoint joinPoint) throws Throwable {
//先获取方法
MethodSignature methodSignature = (MethodSignature) joinPoint.getSignature();
Method method = methodSignature.getMethod();
log.info("请求类方法为:[{}], 请求参数为:[{}]", joinPoint.getSignature(), Arrays.toString(joinPoint.getArgs()));
//获取HttpServletRequest
ServletRequestAttributes requestAttributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
if (requestAttributes != null) {
HttpServletRequest request = requestAttributes.getRequest();
log.info("请求地址为:[{}], 请求方式为:[{}]", request.getRequestURI(), request.getMethod());
}
Object result = joinPoint.proceed();
log.info("结果为:[{}]", result);
return result;
}
}
07-03
255

12-15
1580

08-13
1055
