12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- package com.fdkankan.common.aop;
- import com.alibaba.fastjson.JSON;
- import com.fdkankan.common.constant.LogFormatConstant;
- import java.util.Enumeration;
- import javax.servlet.http.HttpServletRequest;
- 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.slf4j.Logger;
- import org.slf4j.LoggerFactory;
- import org.springframework.stereotype.Component;
- import org.springframework.web.context.request.RequestContextHolder;
- import org.springframework.web.context.request.ServletRequestAttributes;
- @Component
- @Aspect
- @Slf4j
- public class FeignInterceptor {
- // 切入点表达式
- @Pointcut("execution(* com.fdkankan.*.feign..*.*(..))")
- public void privilege() {
- }
- @Around("privilege()")
- public Object around(ProceedingJoinPoint pjp) throws Throwable {
- // 获取类名
- String className = pjp.getTarget().getClass().getName();
- // 获取执行的方法名称
- String methodName = pjp.getSignature().getName();
- // 获取参数名称
- String[] parameterNamesArgs = ((MethodSignature) pjp.getSignature()).getParameterNames();
- // 定义返回参数
- Object result = null;
- // 获取方法参数
- Object[] args = pjp.getArgs();
- StringBuilder params = new StringBuilder();
- for(int i = 0; i < parameterNamesArgs.length; i++){
- params.append(",").append(parameterNamesArgs[i]).append("=").append(args[i]);
- }
- log.info(LogFormatConstant.FEIGN_LOG_START, className, methodName, params.substring(1));
- // 执行目标方法
- result = pjp.proceed();
- log.info(LogFormatConstant.FEIGN_LOG_END, className, methodName, JSON.toJSONString(result));
- return result;
- }
- }
|