Enterprise Principiante

Sustituye el WebMvcConfigurerAdapter eliminado por WebMvcConfigurer y conserva la configuración automática de MVC de 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");
    }
}
¿Ves un problema con este código? Cuéntanos.
🧹

Sin adaptador eliminado

WebMvcConfigurer proporciona métodos predeterminados, por lo que no hay que extender ninguna superclase adaptadora.

⚙️

Conserva los valores predeterminados de Boot

Sin @EnableWebMvc, Spring Boot sigue configurando automáticamente la infraestructura MVC.

🎯

Sobrescribe solo lo necesario

Implementa la interfaz y personaliza únicamente el hook de MVC que requiere la aplicación.

Enfoque Antiguo
WebMvcConfigurerAdapter con @EnableWebMvc
Enfoque Moderno
WebMvcConfigurer con la configuración automática de Spring Boot
Desde JDK
17
Dificultad
Principiante
Configuración MVC de Spring Boot
Disponible

Disponible en Spring Boot 4.0 con Spring Framework 7.0 (requiere Java 17+)

Las aplicaciones Spring Boot 1.x solían extender WebMvcConfigurerAdapter porque las interfaces de Java no podían proporcionar métodos predeterminados. Las versiones modernas de Spring Framework proporcionan implementaciones predeterminadas directamente en WebMvcConfigurer, por lo que basta con implementar la interfaz y sobrescribir únicamente los métodos necesarios. En una aplicación Spring Boot, no añadas @EnableWebMvc a menos que quieras tomar deliberadamente el control total de la configuración de MVC: esta anotación desactiva la configuración automática de MVC de Boot, incluidos sus convertidores habituales, el manejo de recursos estáticos y otros valores predeterminados.