攔截器執行過程和注意點

攔截器和過濾器的區別

攔截器的執行流程:
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");

這部分就不起作用了,相當於就是不攔截方法了!!!!!!!

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