1. 簡介
本快速教程將探討我們在使用 Spring 5.x.x 版本時可能遇到的警告之一,即關於已棄用的 <em >WebMvcConfigurerAdapter</em> 類的警告。
我們將瞭解警告的原因以及如何處理它。
2. 警告原因
此警告 會在我們使用 Spring 5 (或 Spring Boot 2) 版本時出現,無論是在升級現有應用程序還是使用舊 API 構建新應用程序時。
我們來簡要回顧一下其背後的歷史。
在 Spring 的早期版本(包括版本 4 之前),如果想要配置一個 Web 應用程序,我們可以使用 WebMvcConfigurerAdapter 類:
@Configuration
public WebConfig extends WebMvcConfigurerAdapter {
// ...
}這是一個抽象類,實現了 WebMvcConfigurer 接口,幷包含所有繼承方法的空實現。
通過子類化它,我們可以覆蓋其方法,這些方法提供對各種 MVC 配置元素(如視圖解析器、攔截器等)的接入點。
然而,Java 8 引入了接口中默認方法的概念。自然地,Spring 團隊更新了框架以充分利用新的 Java 語言特性。
3. 解決方案
正如前面所述,從 Spring 5 開始,<em >WebMvcConfigurer</em> 接口包含了其所有方法的默認實現。因此,抽象適配器類已被標記為已棄用。
讓我們看看如何直接使用該接口並消除警告:
@Configuration
public WebConfig implements WebMvcConfigurer {
// ...
}這就是全部!更改應該相對容易實施。
如果存在指向覆蓋方法的 super() 調用,也應該移除它們。否則,我們可以像往常一樣覆蓋任何配置回調。
雖然移除警告並非強制要求,但建議這樣做,因為新的 API 更方便,並且舊的類可能會在未來版本中被移除。
4. 結論
在本文中,我們瞭解到如何解決與 WebMvcConfigurerAdapter 類棄用警告相關的問題。