Enterprise Początkujący

Zastąp usunięty WebMvcConfigurerAdapter interfejsem WebMvcConfigurer i zachowaj autokonfigurację MVC zapewnianą przez 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");
    }
}
Widzisz problem z tym kodem? Daj nam znać.
🧹

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ę.

Stare podejście
WebMvcConfigurerAdapter z @EnableWebMvc
Nowoczesne podejście
WebMvcConfigurer z autokonfiguracją Spring Boot
Od JDK
17
Poziom trudności
Początkujący
Konfiguracja MVC w Spring Boot
Dostępne

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.