Spring Interceptor 不生效


此處用到的是spring-boot 2.2.5.RELEASE版本,對應的spring-mvc 5.2.4.RELEASE

發現WebMvcConfigurerAdapter不推薦使用了,推薦WebMvcConfigurer然后就這樣寫了

@Configuration
public class WebConfig implements WebMvcConfigurer {

    public WebConfig() {
        System.out.println("WebConfig init");
    }

    @Autowired
    private JSONModelInterceptor jsonModelInterceptor;

    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        registry.addInterceptor(jsonModelInterceptor).addPathPatterns("/**").excludePathPatterns("/*/assets/**");// 排除不需要攔截的資源
    }
}

結果新寫的攔截器JSONModelInterceptor始終不生效,換回繼承WebMvcConfigurerAdapter也是一樣,
WebConfig init也都輸出了,你還要我怎樣...

后來各種搜索引擎,改為繼承WebMvcConfigurationSupport 攔截器生效了

@Configuration
public class WebConfig extends WebMvcConfigurationSupport {
...

你以為就結束了?


然而另外一個ResourceConfig失效了,這。。

@Configuration
public class ResourceConfig extends WebMvcConfigurationSupport {
...

又各種各種搜索引擎,發現WebMvcConfigurationSupport這貨一個項目里面 只能有一個 只能有一個 只能有一個 這是個大坑

之后又發現后台的日期變成時間戳了,明明有配置

spring.jackson.date-format=yyyy-MM-dd HH:mm:ss

又各種搜索引擎,找到https://blog.csdn.net/qq_30912043/article/details/80967352

現在去掉WebMvcConfigurationSupport改為實現WebMvcConfigurer ,這些問題都解決了,感謝網友感謝搜索引擎。

總結:
配置攔截器、靜態資源等不要繼承WebMvcConfigurationSupport,改實現WebMvcConfigurer,因為WebMvcConfigurationSupport會覆蓋一些默認配置信息。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM