LogAspect.java 1.5 KB

1234567891011121314151617181920212223242526272829303132333435
  1. package com.sf.springboot.dto;
  2. import org.aspectj.lang.ProceedingJoinPoint;
  3. import org.aspectj.lang.annotation.Around;
  4. import org.aspectj.lang.annotation.Aspect;
  5. import org.aspectj.lang.annotation.Pointcut;
  6. import org.springframework.stereotype.Component;
  7. import org.springframework.web.context.request.RequestContextHolder;
  8. import org.springframework.web.context.request.ServletRequestAttributes;
  9. import javax.servlet.http.HttpServletRequest;
  10. @Aspect
  11. @Component
  12. public class LogAspect {
  13. // private final static Logger LOGGER = LoggerFactory.getLogger(LogAspect.class);
  14. @Pointcut(value = "execution(* com.sf.springboot.controller.UserController.queryUserJson(..))")
  15. public void log(){}
  16. @Around(value = "log()")
  17. public Object methodAroud(ProceedingJoinPoint joinPoint) throws Throwable {
  18. ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
  19. HttpServletRequest request = attributes.getRequest();
  20. //获取主机IP
  21. System.out.println("IP :{}"+request.getRemoteAddr());
  22. //获取请求地址
  23. System.out.println("URL:{}"+request.getRequestURL().toString());
  24. //获取请求方式
  25. System.out.println("HTTP Method:{}"+request.getMethod());
  26. //获取类名和方法名
  27. System.out.println("Class Method:{}.{}"+joinPoint.getSignature().getDeclaringTypeName()+joinPoint.getSignature().getName());
  28. Object proceed = joinPoint.proceed();
  29. return proceed;
  30. }
  31. }