spring-boot使用Interceptor

1.继承HandlerInterceptorAdapter实现自定义的拦截器
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);
		}
	}

猜你喜欢

转载自young-2017.iteye.com/blog/2366937