在日常生产中,在和前端联合调试的时候,可能会遇到很多情况,在出现问题时候,很不容易找到,那么如果能够检测前后台的交互数据,应该就很容易快速解决问题,哪么可以使用Aop去解析。
- 首先因为aop包
<!--aop依赖-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-aop</artifactId>
<version>1.3.3.RELEASE</version>
</dependency>
- 配置切面类
@Aspect
@Component
public class WebLogAspect {
private final static Logger log = LoggerFactory.getLogger(WebLogAspect.class);
/**
* rest包和子包里面的所有方法
*/
@Pointcut("execution(public * dragonfly.rest..*.*(..))")
public void weblog() {
}
@Before("weblog()")
public void doBefore(JoinPoint joinpoint) throws Throwable {
// 接收到请求,记录请求内容
ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
HttpServletRequest request = attributes.getRequest();
// 记录下请求内容
log.info("URL : " + request.getRequestURL().toString());
log.info("请求类型 : " + request.getMethod());
log.info("请求IP : " + request.getRemoteAddr());
log.info("方法 : " + joinpoint.getSignature().getDeclaringTypeName() + "." + joinpoint.getSignature().getName());
log.info("参数列表 : " + Arrays.toString(joinpoint.getArgs()));
}
@AfterReturning(returning = "ret", pointcut = "weblog()")
public void doAfterReturning(Object ret) throws Throwable {
// 处理完请求,返回内容
log.info("返回参数 : " + ret);
}
}
- 哦了。
2017-01-04 17:20:14.201 INFO 42480 --- [io-10086-exec-1] dragonfly.Aop.WebLogAspect : URL : http://localhost:10086/hi
2017-01-04 17:20:14.202 INFO 42480 --- [io-10086-exec-1] dragonfly.Aop.WebLogAspect : 请求方法HTTP_METHOD : GET
2017-01-04 17:20:14.202 INFO 42480 --- [io-10086-exec-1] dragonfly.Aop.WebLogAspect : 请求IP : 0:0:0:0:0:0:0:1
2017-01-04 17:20:14.205 INFO 42480 --- [io-10086-exec-1] dragonfly.Aop.WebLogAspect : 方法CLASS_METHOD : dragonfly.rest.DragonFlyControl.hi
2017-01-04 17:20:14.206 INFO 42480 --- [io-10086-exec-1] dragonfly.Aop.WebLogAspect : 参数列表ARGS : [123]
2017-01-04 17:20:14.219 INFO 42480 --- [io-10086-exec-1] dragonfly.Aop.WebLogAspect : 响应参数 : helloworld123
---------------getGoodsUrl方法开始执行---------------
URL : http://139.198.2.112:32008/mybosc/getGoodsUrl/v1
请求类型 : POST
请求IP : 27.115.24.210
方法 : dragonfly.rest.DragonFlyController.getGoodsUrl
参数列表 : [110310018000034, 100000394947, 3700, 156, 20170124, 124811, 10201701241307131612, 0, Success]
返回参数 : ModelAndView: reference to view with name 'redirect:http://mybosc.test.otosaas.com/order/coffee/100000394947'; model is null