话不多说直接上代码
引入maven依赖
<!--引用AOP-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-aop</artifactId>
</dependency>
import com.exam.util.CommonUtil;
import lombok.extern.slf4j.Slf4j;
import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
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
@Slf4j
public class LogAspect {
@Pointcut("execution(public * com.exam.controller.*.*.*(..))")
public void requestAspect(){}
@Before(value = "requestAspect()")
public void methodBefore(JoinPoint joinPoint){
ServletRequestAttributes requestAttributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
HttpServletRequest request = requestAttributes.getRequest();
//打印请求内容
log.info("===============请求内容===============");
//获取当前登录人,util可以自己写
if(null!= CommonUtil.getLoginUser()) {
log.info("请求用户:" + CommonUtil.getLoginUser().getUsercode());
}
log.info("请求ip:"+request.getRemoteAddr());
log.info("请求地址:"+request.getRequestURL().toString());
log.info("请求方式:"+request.getMethod());
log.info("请求类方法:"+joinPoint.getSignature());
// log.info("请求类方法参数:"+ Arrays.toString(joinPoint.getArgs()));
log.info("===============请求内容===============");
}
//在方法执行完结后打印返回内容
// @AfterReturning(returning = "o",pointcut = "requestAspect()")
// public void methodAfterReturing(Object o ){
// log.info("--------------返回内容----------------");
// log.info("Response内容:"+ JSONObject.toJSONString(o));
// log.info("--------------返回内容----------------");
// }
}
最后看结果: