拦截器执行过程和注意点

拦截器和过滤器的区别

拦截器的执行流程:
1.程序先执行preHandle()方法,如果该方法的返回值为true,则程序会继续向下执行处理器中的方法,否则将不再向下执行。
2.在业务处理器(即控制器Controller类)处理完请求后,会执行postHandle()方法,然后会通过DispatcherServlet向客户端返回响应。
3.在DispatcherServlet处理完请求后,才会执行afterCompletion()方法。

特别注意:

@Override
    public void addInterceptors(InterceptorRegistry registry) {
        // 注册登录拦截器,拦截除/login以外的所有请求
        registry.addInterceptor(configInterceptor).addPathPatterns("/export/**")
                .addPathPatterns("/ai/**").addPathPatterns("/redirect/**")
                .excludePathPatterns("/login");
        super.addInterceptors(registry);
    }

configInterceptor是一个拦截器。如果configInterceptor中判断逻辑有return false 则

addPathPatterns("/export/**")
                .addPathPatterns("/ai/**").addPathPatterns("/redirect/**")
                .excludePathPatterns("/login");

这部分就不起作用了,相当于就是不拦截方法了!!!!!!!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章