Este repositorio contiene un ecosistema de micro-proyectos y prácticas desarrolladas con Spring Boot, ahora completamente modernizado para las últimas tecnologías de la plataforma Java.
Se ha realizado una actualización integral para llevar todo el codebase a los estándares más modernos:
- Java 25 (LTS): Todo el proyecto ha sido actualizado para aprovechar las funcionalidades y el rendimiento de la versión 25 de Java.
- Spring Boot 3.4.3: Actualización a la última versión estable de Spring Boot 3, asegurando compatibilidad con Jakarta EE y eliminando dependencias obsoletas.
- Spring Framework 6.2.3: Núcleo actualizado para el máximo rendimiento y soporte de nuevas APIs.
- Spring Cloud 4.2.0: Modernización de los sistemas de mensajería (StreamBridge) y resiliencia.
- JDK 25: Es necesario tener instalado el JDK 25 para compilar y ejecutar este proyecto.
- Maven 3.9+: Para la gestión de dependencias y construcción del proyecto.
Este ecosistema cubre una amplia gama de escenarios, desde básicos hasta avanzados:
| Módulo | Descripción | Cambios en Modernización |
|---|---|---|
spring-mlt |
Microservicio complejo con Seguridad, Mensajería y Cache | Migración a Spring Security 6, Spring Cloud Stream 4 y Resilience4J 2. |
springboot-jpa-basic-junit5 |
Pruebas unitarias de persistencia | Configurado para compatibilidad Mockito con Java 25. |
springboot-h2database |
Servicios REST con base de datos en memoria | Optimizado para inyección de dependencias moderna. |
springboot-exercises |
Ejercicios de controladores y lógica espacial | Corrección de aserciones y compatibilidad con Spring Data. |
springboot-cron |
Servicios programados y mensajería | Refactorización de servicios de mail y procesos batch. |
Durante este proceso se resolvieron retos clave de compatibilidad:
- Compatibilidad de Bytecode: Debido a que Java 25 es extremadamente nuevo, se configuró el plugin de compilación para generar bytecode compatible con Java 24 (
maven.compiler.release=24), permitiendo que las herramientas de análisis de Spring operen correctamente. - Spring Security 6: Se eliminó el uso de
WebSecurityConfigurerAdapter(removido en SB3) a favor de la configuración basada en componentesSecurityFilterChain. - Mockito y ByteBuddy: Se añadieron parámetros específicos en
maven-surefire-plugin(-Dnet.bytebuddy.experimental=true) para permitir que Mockito pueda instrumentar clases en el entorno de Java 25. - Spring Cloud Stream: Se migró el modelo de
@EnableBindingal modelo funcional usandoStreamBridge, permitiendo mayor flexibilidad y eliminando el acoplamiento con interfaces internas de Spring Cloud.
Para construir y ejecutar tests en todo el ecosistema:
mvn clean installPara ejecutar un módulo específico:
mvn spring-boot:run -pl :nombre-del-moduloDesarrollado y mantenido bajo estándares modernos de ingeniería de software.