FeignInterceptor.java 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. package com.fdkankan.common.aop;
  2. import com.alibaba.fastjson.JSON;
  3. import com.fdkankan.common.constant.LogFormatConstant;
  4. import java.util.Enumeration;
  5. import javax.servlet.http.HttpServletRequest;
  6. import lombok.extern.slf4j.Slf4j;
  7. import org.aspectj.lang.ProceedingJoinPoint;
  8. import org.aspectj.lang.annotation.Around;
  9. import org.aspectj.lang.annotation.Aspect;
  10. import org.aspectj.lang.annotation.Pointcut;
  11. import org.aspectj.lang.reflect.MethodSignature;
  12. import org.slf4j.Logger;
  13. import org.slf4j.LoggerFactory;
  14. import org.springframework.stereotype.Component;
  15. import org.springframework.web.context.request.RequestContextHolder;
  16. import org.springframework.web.context.request.ServletRequestAttributes;
  17. @Component
  18. @Aspect
  19. @Slf4j
  20. public class FeignInterceptor {
  21. // 切入点表达式
  22. @Pointcut("execution(* com.fdkankan.*.feign..*.*(..))")
  23. public void privilege() {
  24. }
  25. @Around("privilege()")
  26. public Object around(ProceedingJoinPoint pjp) throws Throwable {
  27. // 获取类名
  28. String className = pjp.getTarget().getClass().getName();
  29. // 获取执行的方法名称
  30. String methodName = pjp.getSignature().getName();
  31. // 获取参数名称
  32. String[] parameterNamesArgs = ((MethodSignature) pjp.getSignature()).getParameterNames();
  33. // 定义返回参数
  34. Object result = null;
  35. // 获取方法参数
  36. Object[] args = pjp.getArgs();
  37. StringBuilder params = new StringBuilder();
  38. for(int i = 0; i < parameterNamesArgs.length; i++){
  39. params.append(",").append(parameterNamesArgs[i]).append("=").append(args[i]);
  40. }
  41. log.info(LogFormatConstant.FEIGN_LOG_START, className, methodName, params.substring(1));
  42. // 执行目标方法
  43. result = pjp.proceed();
  44. log.info(LogFormatConstant.FEIGN_LOG_END, className, methodName, JSON.toJSONString(result));
  45. return result;
  46. }
  47. }