1. 程式人生 > >Spring Boot 2.0 WebMvcConfigurerAdapter過時以及新坑

Spring Boot 2.0 WebMvcConfigurerAdapter過時以及新坑

在Spring Boot 2.0後用自己的的配置類繼承WebMvcConfigurerAdapter時,idea提示這個類已經過時了,如下圖


嫌棄橫線,網上搜索解決辦法,發現大多是說繼承WebMvcConfigurationSupport來代替 ,但是一旦繼承WebMvcConfigurationSupport後就會出現新的問題,會發現Spring Boot的WebMvc自動配置失效,具體表現比如訪問不到靜態資源(js,css等)了,這是因為WebMvc的自動配置都在WebMvcAutoConfiguration類中,但是類中有這個註解@ConditionalOnMissingBean({WebMvcConfigurationSupport.class}),意思是一旦在容器中檢測到WebMvcConfigurationSupport這個類,WebMvcAutoConfiguration類中的配置都不生效。所以一旦我們自己寫的配置類繼承了WebMvcConfigurationSupport,相當於容器中已經有了WebMvcConfigurationSupport,所以預設配置都不會生效,都得自己在配置檔案中配置。


建議和解決辦法:

建議自己寫的配置類實現WebMvcConfigurer介面,這個介面的方法都加了jdk1.8的 default方法修飾,不強制實現所有的方法,可以根據實際實現相關的方法。