自定义拦截器的实现

以TimeInterceopt为例

点击查看代码
    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
        System.out.println("拦截器执行了,记录开始时间");
        long t1 = new Date().getTime();
        request.setAttribute("starttime", t1);
        return true;
    }
    @Override
    public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
        Long t1 = (Long) request.getAttribute("starttime");
        long t2 = new Date().getTime();
        System.out.println(request.getRequestURI() + "执行了" + (t2 - t1) + "毫秒");
    }
}
实现 WebMvcConfigurer 接口 通过实现 WebMvcConfigurer 接口的 addInterceptors 方法来配置拦截器
点击查看代码
@Configuration
public class WebConfiguration implements WebMvcConfigurer {
    @Bean
    public TimeIntercept timeIntercept() {
        return new TimeIntercept();
    }
    @Override
    public void addInterceptors(InterceptorRegistry registry) {
       registry.addInterceptor(timeIntercept())
                .addPathPatterns("/**")  .excludePathPatterns("/static/**");
    }
}
posted on 2026-01-31 11:21  瑞瑞子  阅读(0)  评论(0)    收藏  举报