package com.sf.springboot.dto; 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.springframework.stereotype.Component; import org.springframework.web.context.request.RequestContextHolder; import org.springframework.web.context.request.ServletRequestAttributes; import javax.servlet.http.HttpServletRequest; @Aspect @Component public class LogAspect { // private final static Logger LOGGER = LoggerFactory.getLogger(LogAspect.class); @Pointcut(value = "execution(* com.sf.springboot.controller.UserController.queryUserJson(..))") public void log(){} @Around(value = "log()") public Object methodAroud(ProceedingJoinPoint joinPoint) throws Throwable { ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes(); HttpServletRequest request = attributes.getRequest(); //获取主机IP System.out.println("IP :{}"+request.getRemoteAddr()); //获取请求地址 System.out.println("URL:{}"+request.getRequestURL().toString()); //获取请求方式 System.out.println("HTTP Method:{}"+request.getMethod()); //获取类名和方法名 System.out.println("Class Method:{}.{}"+joinPoint.getSignature().getDeclaringTypeName()+joinPoint.getSignature().getName()); Object proceed = joinPoint.proceed(); return proceed; } }