Автор оригинала: Loredana Crusoveanu.
1. введение
В этом кратком руководстве мы рассмотрим одно из предупреждений, которые мы можем увидеть при работе с версией Spring 5.x.x, а именно предупреждение, относящееся к устаревшему классу WebMvcConfigurerAdapter .
Мы посмотрим, почему происходит это предупреждение и как с ним справиться.
2. Почему Присутствует предупреждение
Это предупреждение появится , если мы используем Spring версии 5 (или Spring Boot 2) , либо при обновлении существующего приложения, либо при создании нового приложения со старым API.
Давайте вкратце рассмотрим историю, стоящую за этим.
В более ранних версиях Spring, вплоть до версии 4 включительно, если бы мы хотели настроить веб-приложение, мы могли бы использовать класс WebMvcConfigurerAdapter :
@Configuration public WebConfig extends WebMvcConfigurerAdapter { // ... }
Это абстрактный класс, реализующий интерфейс WebMvcConfigurer и содержащий пустые реализации для всех унаследованных методов.
Разделив его на подклассы, мы можем переопределить его методы, которые обеспечивают привязки к различным элементам конфигурации MVC, таким как распознаватели представлений, перехватчики и многое другое.
Однако в Java 8 добавлена концепция методов по умолчанию в интерфейсах. Естественно, команда Spring обновила фреймворк, чтобы в полной мере использовать новые функции языка Java.
3. Решение
Как уже упоминалось, интерфейс WebMvcConfigurer , начиная с Spring 5, содержит реализации по умолчанию для всех своих методов. В результате абстрактный класс адаптера был помечен как устаревший.
Давайте посмотрим, как мы можем начать использовать интерфейс напрямую и избавиться от предупреждения :
@Configuration public WebConfig implements WebMvcConfigurer { // ... }
И это все! Это изменение должно быть довольно легко сделать.
Если есть какие-либо super() вызовы переопределенных методов, мы также должны удалить их. В противном случае мы можем переопределить любой из обратных вызовов конфигурации, как обычно.
Хотя удаление предупреждения не является обязательным, рекомендуется сделать это, так как новый API более удобен, и устаревший класс может быть удален в будущих версиях.
4. Заключение
В этой короткой статье мы увидели, как исправить предупреждение, относящееся к амортизации класса WebMvcConfigurerAdapter .