Enterprise Начинающий

Замените удалённый WebMvcConfigurerAdapter на WebMvcConfigurer и сохраните автоконфигурацию MVC в Spring Boot.

✕ Spring Boot 1.x
@EnableWebMvc
@Configuration
public class WebConfig extends WebMvcConfigurerAdapter {
    @Override
    public void addViewControllers(
            ViewControllerRegistry registry) {
        registry.addViewController("/").setViewName("home");
    }
}
✓ Spring Boot 4.x
@Configuration
public class WebConfig implements WebMvcConfigurer {
    @Override
    public void addViewControllers(
            ViewControllerRegistry registry) {
        registry.addViewController("/").setViewName("home");
    }
}
Заметили проблему в этом коде? Сообщите нам.
🧹

Без удалённого адаптера

WebMvcConfigurer предоставляет методы по умолчанию, поэтому наследовать суперкласс-адаптер не требуется.

⚙️

Сохраняет настройки Boot

Без @EnableWebMvc Spring Boot продолжает автоматически настраивать инфраструктуру MVC.

🎯

Переопределяется только необходимое

Реализуйте интерфейс и настройте только тот хук MVC, который требуется приложению.

Старый подход
WebMvcConfigurerAdapter с @EnableWebMvc
Современный подход
WebMvcConfigurer с автоконфигурацией Spring Boot
Начиная с JDK
17
Сложность
Начинающий
Конфигурация MVC в Spring Boot
Доступно

Доступно в Spring Boot 4.0 со Spring Framework 7.0 (требуется Java 17+)

Приложения Spring Boot 1.x часто наследовали WebMvcConfigurerAdapter, поскольку интерфейсы Java не могли предоставлять методы по умолчанию. Современные версии Spring Framework предоставляют реализации по умолчанию непосредственно в WebMvcConfigurer, поэтому реализуйте этот интерфейс и переопределяйте только необходимые методы. В приложении Spring Boot не добавляйте @EnableWebMvc, если только вы намеренно не хотите полностью управлять конфигурацией MVC: эта аннотация отключает автоконфигурацию MVC в Boot, включая стандартные конвертеры, обработку статических ресурсов и другие настройки по умолчанию.