Modernización Java: De Monolito a Spring Boot 3 y Java 21
- Duración: 3 días (24 horas lectivas).
- Modalidad: Presencial / Remoto en directo.
- Público objetivo: Desarrolladores backend, arquitectos de software y líderes técnicos con código Java legado (Java 8/11) que necesitan actualizar su stack sin detener el negocio.
Objetivos del Curso
Actualizar aplicaciones Java existentes a los estándares modernos de la JVM, aprovechando las nuevas características de lenguaje (Java 17/21) y migrando el ecosistema a Spring Boot 3 con un enfoque pragmático y orientado a rendimiento.
Temario Detallado
Día 1: El Lenguaje Moderno (Java 17 al 21)
- Adopción de Java 21: Novedades clave desde Java 8/11.
- Records y Sealed Classes: Modelado de datos inmutables y arquitecturas de dominio más seguras.
- Pattern Matching: Simplificación de lógica condicional y
switchexpresiones. - Virtual Threads (Project Loom): Concurrencia masiva sin la complejidad del modelo asíncrono/reactivo tradicional.
- Refactorización de código legado: Patrones para limpiar vicios de sintaxis antiguos.
Día 2: Transición a Spring Boot 3
- Prerrequisitos y migración: De Spring Boot 2.x a 3.x (Namespace
jakarta.*y dependencias obsoletas). - Configuración moderna: Eliminación del XML por completo y migración a beans funcionales y
@Configuration. - AOT y GraalVM Native Images: Preparación del código para compilación nativa y arranque instantáneo.
- Gestión de dependencias: Actualización de Hibernate 6, Spring Data y herramientas de mapeo.
Día 3: Arquitectura, Observabilidad y Rendimiento
- Diseño de APIs robustas: DTOs con Records, Bean Validation moderno y manejo global de excepciones.
- Observabilidad integrada: Micrometer, OpenTelemetry y métricas de producción sin sobrecargar la app.
- Pruebas de migración: Cobertura de tests durante el proceso de refactorización (JUnit 5 + Testcontainers).
- Estrategias de despliegue: Plan de rollback, migración de datos y despliegue progresivo.
Resultados Esperados
Al finalizar la píldora, el equipo sabrá cómo abordar la migración de aplicaciones en producción, reducir el consumo de memoria y CPU aprovechando Virtual Threads y mantener una base de código limpia y mantenible.