1. Введение
В этом кратком руководстве мы рассмотрим одно из предупреждений, которые мы можем увидеть при работе с версией Spring 5.xx, а именно то, которое относится к устаревшему классу 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
.