Spring Boot recuerda el pasado: por eso los Servlets aún funcionan
🔄 Spring Boot: Moderno, pero Retrocompatible (Sí, los Servlets funcionan)
Spring Boot se presenta como un framework moderno, opinado y productivo para construir aplicaciones web y microservicios en Java. Y lo es.
Pero lo que muchos no esperan es que aún puedas hacer esto:
@Bean
public ServletRegistrationBean<MiServlet> miServlet() {
return new ServletRegistrationBean<>(new MiServlet(), "/legacy");
}
Y funcione. Sin web.xml
, sin configuraciones extra.
¿Cómo es posible que un Servlet tradicional se ejecute dentro de un entorno que se supone moderno?
☕ Porque Java es retrocompatible por naturaleza
La clave está en la plataforma: Java nunca rompe con el pasado.
Desde hace décadas, Java garantiza que el código antiguo siga funcionando. Y frameworks como Spring Boot heredan esa filosofía.
Por eso, aunque Spring Boot promueva anotaciones como @RestController
, inyección de dependencias y arquitectura REST, no bloquea el uso de un HttpServlet
de la vieja escuela.
⚙️ Internamente, sigue siendo un contenedor Servlet
Spring Boot ejecuta un servidor embebido (Tomcat, Jetty o Undertow) que implementa la especificación Servlet.
Eso significa que puedes registrar un servlet como lo harías manualmente en Jetty:
ServletContextHandler context = new ServletContextHandler();
context.addServlet(new ServletHolder(new MiServlet()), "/legacy");
Y Spring Boot te ofrece algo equivalente, pero integrado al contexto de Spring:
@Bean
public ServletRegistrationBean<MiServlet> miServlet() {
return new ServletRegistrationBean<>(new MiServlet(), "/legacy");
}
✅ ¿Tiene sentido usar esto hoy?
Sí, pero con criterio:
- Si estás migrando una aplicación antigua con JSPs o servlets clásicos
- Si necesitas manejar archivos, binarios o peticiones crudas
- Si quieres acceso directo a
HttpServletRequest
oHttpServletResponse
- O si simplemente no quieres usar Spring MVC
En esos casos, Spring Boot te deja usar un servlet sin obligarte a reescribir todo.
🧠 Conclusión
Spring Boot es moderno, pero Java es retrocompatible. Y esa combinación es poderosa.
Puedes usar las herramientas más nuevas del ecosistema Java… Pero si necesitas volver al código de hace 15 años, también puedes.
Y por eso, aunque no se promueva… sí, los Servlets funcionan en Spring Boot.
🧩 Se supone que un framework moderno ignora lo antiguo,
pero Spring Boot lo recuerda.
Y esa memoria es la que permite migrar, integrar, y no romper.
Comentarios
Publicar un comentario