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 o HttpServletResponse
  • 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

Entradas populares de este blog

Configurando Servlets y JSP en Jetty

Firma de un Documento XML con Certificado Digital en Java para Uso Tributario en Chile

RESOLUCION SET BASICO DE FACTURA ELECTRÓNICA SII