springboot自定义拦截器 淩亂°似流年 2022-05-19 23:04 198阅读 0赞 ### 自定义拦截器 ### > 自定义拦截器有两种方法,继承HandlerInterceptorAdapter和实现HandlerInterceptor接口 > 本例继承HandlerInterceptorAdapter @Component public class MyInterceptor 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"); request.removeAttribute("startTime"); long endTime = System.currentTimeMillis(); System.out.println(endTime-startTime); request.setAttribute("handTime",endTime-startTime); } } ### 注册拦截器 ### > 定义拦截器时,springboot和传统的ssm框架并没有什么不同,传统的ssm框架一般是采用xml的方式注册拦截器,比较麻烦;springboot提倡使用注解,方式如下 @SpringBootConfiguration public class MyAdapter extends WebMvcConfigurerAdapter{ /* @Bean public MyInterceptor myInterceptor(){ return new MyInterceptor(); }*/ @Autowired private MyInterceptor myInterceptor; @Override public void addInterceptors(InterceptorRegistry registry) { registry.addInterceptor(myInterceptor).addPathPatterns("/**"); } } ### 结果 ### > 在浏览器中访问任意路径,控制台会打印处理此请求的时间
还没有评论,来说两句吧...