<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-aop</artifactId>
</dependency>
/**
* @Auther: Jhon Li
* @Date: 2018/12/20 13:15
* @Description: 切片攔截能拿到請求的參數
* 能拿到原始請求的方法中的值,但是拿不到原始http響應的請求對象了
*
* 請求順序 filter-> interceptor -> controllerAdvice ->Aspect -->Controller
*
*/
@Aspect
@Component
public class TimeAspect {
//指定在那個方法或者controller攔截
@Around("execution(* com.lyc.controller.UserController.*(..))")
public Object handControllerMethod(ProceedingJoinPoint pjp) throws Throwable {
System.out.println("time aspect start");
Object[] args = pjp.getArgs(); //拿到方法的參數
for (Object arg : args) {
System.out.println(arg);
}
long start = new Date().getTime();
Object proceed = pjp.proceed();
System.out.println("timeaspect 耗時:"+(new Date().getTime()-start));
System.out.println("time aspect end");
return proceed;
}
}