2.重写preHandle方法 ,在请求发生前执行
3.重写postHandle方法,在请求完成之后执行
public class MyMvcInterceptor extends HandlerInterceptorAdapter{ @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { long startTime = System.currentTimeMillis(); request.setAttribute("startTime",startTime); return true; } @Override public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception { long startTime = (long)request.getAttribute("startTime"); long endTime = System.currentTimeMillis(); System.out.println("本次请求时间为:"+(endTime - startTime) + " ms"); super.postHandle(request, response, handler, modelAndView); } }
配置拦截器bean
重写addInterceptors方法,注册拦截器
@SpringBootApplication @EnableAsync public class DemoApplication extends WebMvcConfigurerAdapter{ @Bean public MyMvcInterceptor myMvcInterceptor(){ return new MyMvcInterceptor(); } @Override public void addInterceptors(InterceptorRegistry registry) { registry.addInterceptor(myMvcInterceptor()); } public static void main(String[] args) { SpringApplication.run(DemoApplication.class, args); } }