GitHub项目地址:https://github.com/742362144/springboot
1.首先加入maven依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-aop</artifactId>
</dependency>
2.写一个Http请求的aop
package com.example.aspect;
import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.annotation.*;
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;
import javax.servlet.http.HttpServletRequest;
/**
* Created by Coder on 2017/4/10.
*/
@Aspect
@Component
public class HttpAspect {
private final static Logger logger = LoggerFactory.getLogger(HttpAspect.class);
@Pointcut("execution(public * com.example.controller.PersonController.getpersons())")
public void log(){
}
@Before("log()")
public void doBefore(JoinPoint joinPoint){
logger.info("before!!!!!!!!!!!");
ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
HttpServletRequest request = attributes.getRequest();
//url
logger.info("url={}", request.getRequestURL());
//method
logger.info("method={}", request.getMethod());
//ip
logger.info("ip={}", request.getRemoteAddr());
//类方法
logger.info("class method={}", joinPoint.getSignature().getDeclaringTypeName() +", "+joinPoint.getSignature().getDeclaringTypeName()+".");
//参数
logger.info("url={}", joinPoint.getArgs());
}
@After("log()")
public void doAfter(){
logger.info("after!!!!!!!!!!!");
}
@AfterReturning(returning = "object",pointcut = "log()")
public void doAfterReturning(Object object){
logger.info("response={}",object.toString());
}
}