Конфигурация MVC в Spring Boot
Замените удалённый WebMvcConfigurerAdapter на WebMvcConfigurer и сохраните автоконфигурацию MVC в Spring Boot.
@EnableWebMvc
@Configuration
public class WebConfig extends WebMvcConfigurerAdapter {
@Override
public void addViewControllers(
ViewControllerRegistry registry) {
registry.addViewController("/").setViewName("home");
}
}
@Configuration
public class WebConfig implements WebMvcConfigurer {
@Override
public void addViewControllers(
ViewControllerRegistry registry) {
registry.addViewController("/").setViewName("home");
}
}
Без удалённого адаптера
WebMvcConfigurer предоставляет методы по умолчанию, поэтому наследовать суперкласс-адаптер не требуется.
Сохраняет настройки Boot
Без @EnableWebMvc Spring Boot продолжает автоматически настраивать инфраструктуру MVC.
Переопределяется только необходимое
Реализуйте интерфейс и настройте только тот хук MVC, который требуется приложению.
Доступно в 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, включая стандартные конвертеры, обработку статических ресурсов и другие настройки по умолчанию.