Konfiguracja MVC w Spring Boot
Zastąp usunięty WebMvcConfigurerAdapter interfejsem WebMvcConfigurer i zachowaj autokonfigurację MVC zapewnianą przez 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");
}
}
Bez usuniętego adaptera
WebMvcConfigurer udostępnia metody domyślne, więc nie trzeba rozszerzać nadklasy adaptera.
Zachowuje ustawienia domyślne Boot
Bez @EnableWebMvc Spring Boot nadal automatycznie konfiguruje infrastrukturę MVC.
Przesłanianie tylko tego, co istotne
Zaimplementuj interfejs i dostosuj wyłącznie punkt rozszerzenia MVC wymagany przez aplikację.
Dostępne w Spring Boot 4.0 ze Spring Framework 7.0 (wymaga Java 17+)
Aplikacje Spring Boot 1.x często rozszerzały WebMvcConfigurerAdapter, ponieważ interfejsy Javy nie mogły udostępniać metod domyślnych. Nowoczesne wersje Spring Framework zapewniają domyślne implementacje bezpośrednio w WebMvcConfigurer, dlatego należy zaimplementować ten interfejs i przesłonić tylko potrzebne metody. W aplikacji Spring Boot nie dodawaj @EnableWebMvc, chyba że celowo chcesz przejąć pełną kontrolę nad konfiguracją MVC. Wyłącza ona autokonfigurację MVC Spring Boot, w tym standardowe konwertery, obsługę zasobów statycznych i inne ustawienia domyślne.