Предупреждение: «Тип WebMvcConfigurerAdapter устарел»

Предупреждение: «Тип WebMvcConfigurerAdapter устарел»

1. Вступление

В этом кратком руководстве мы рассмотрим одно из предупреждений, которые мы можем увидеть при работе с версией Spring 5.x.x, а именно то, которое относится к устаревшему классуWebMvcConfigurerAdapter.

Мы увидим, почему происходит это предупреждение и как с ним справиться.

2. Почему присутствует предупреждение

Это предупреждениеwill appear if we’re using Spring version 5 (or Spring Boot 2), либо при обновлении существующего приложения, либо при создании нового приложения со старым API.

Давайте кратко пройдемся по истории, стоящей за этим.

В более ранних версиях Spring, до версии 4 включительно, если мы хотели настроить веб-приложение, мы могли использовать классWebMvcConfigurerAdapter:

@Configuration
public WebConfig extends WebMvcConfigurerAdapter {

    // ...
}

Это абстрактный класс, который реализует интерфейсWebMvcConfigurer и содержит пустые реализации для всех унаследованных методов.

Используя его подклассы, мы можем переопределить его методы, которые обеспечивают привязки к различным элементам конфигурации MVC, таким как преобразователи представлений, перехватчики и многое другое.

Однако в Java 8 добавлена ​​концепция методов по умолчанию в интерфейсах. Естественно, команда Spring обновила среду, чтобы в полной мере использовать новые возможности языка Java.

3. Решение

Как уже упоминалось, интерфейсWebMvcConfigurer, начиная с Spring 5, содержит реализации по умолчанию для всех своих методов. В результате абстрактный класс адаптера был помечен как устаревший.

Посмотрим, какwe can start using the interface directly and get rid of the warning:

@Configuration
public WebConfig implements WebMvcConfigurer {
    // ...
}

И это все! Изменение должно быть довольно легко сделать.

Если есть какие-либо вызовыsuper() для переопределенных методов, мы должны их также удалить. В противном случае мы можем переопределить любой из обратных вызовов конфигурации, как обычно.

Хотя удаление предупреждения не является обязательным, рекомендуется сделать это, поскольку новый API более удобен, а устаревший класс может быть удален в будущих версиях.

4. Заключение

В этой короткой статье мы увидели, как исправить предупреждение, относящееся к устареванию классаWebMvcConfigurerAdapter.