Newsletter Java: Novedades de la Semana 1 Mayo 2025
Tu newsletter semanal de Programando En Java
Gracias por estar aquí una semana más. En esta edición te traigo contenido útil para seguir mejorando como desarrollador Java: tips, recursos, y novedades del ecosistema Spring.
Vamos al lío 👇
Redes Sociales
📘 Facebook: Programando en JAVA
🐦 X (Twitter): ProgEnJava
📸 Instagram: Programando en Java
💼 LinkedIn: Ricardo Romero Benítez
▶️ YouTube: Programando en Java
🎵 TikTok: Programando en Java
🧵 Threads: Programando en Java
💬 Discord: Comunidad de Programando en JAVA
🎥 Video de la Semana en YouTube: Spring AI, crea tu primer Bot con OpenAI
En este tutorial completo y fácil, te guío paso a paso para integrar la potencia de OpenAI (como ChatGPT) en una aplicación Java con Spring Boot. Aprenderás desde la configuración inicial hasta cómo hacer consultas inteligentes en lenguaje natural.
✅ Ideal si ya manejas Spring y quieres dar el salto a la IA
✅ Perfecto para crear asistentes virtuales, bots conversacionales o sistemas inteligentes
✅ ¡Sin complicaciones! Todo explicado con claridad
🔥 OpenJDK: JDK 25 va tomando forma
Dos JEPs se acaban de subir de nivel, pasando de Candidate a Proposed to Target para JDK 25:
JEP 512 - Compact Source Files and Instance Main Methods
JEP 511 - Module Import Declarations
Estas características están en la recta final y su revisión termina el 28 de abril de 2025. ¿Quieres saber qué demonios significan? Consulta las specs y la info detallada en InfoQ.
Además, el JEP 513, que trata sobre los ya célebres Flexible Constructor Bodies — sí, esos que permiten meter instrucciones antes del super() o this(), algo antes no permitido — ha avanzado a estado Candidate después de tres preview rounds en los últimos JDKs. Esto significa que ya casi está listo para producción, con la gracia de dejar que puedas hacer cosas antes de la llamada a constructores padre sin romper nada. Detalles técnicos y specs en la propuesta oficial aquí.
Por otro lado, Build 20 de los early-access de JDK 25 ya está disponible, corrigiendo bugs del build anterior y mejorando estabilidad; los detalles y release notes están en los enlaces oficiales:
Si estás vale, va la tarea de reportar bugs aquí.
🚀 Gradle 8.14: Ya en GA, con mejoras frescas
Después de tres release candidates, Gradle 8.14 ya es oficial y viene con jugosos updates:
Soporte para JDK 24 (Silent flexibilidad para aprovechar lo último de Java)
Introducción de lazy dependency configuration para mejorar la performance y bajar el consumo de memoria en configuración (menos dolor durante builds)
Nuevo modo de verificación de integridad en el configuration cache para facilitar debugging.
¿Quieres lucirte optimizando tus builds? Léete los detallitos técnicos en las release notes y la documentación oficial.
🐘 Hibernate ORM 7.0: Primer Release Candidate listo para rockear
Hibernate ORM 7.0.0 CR1 ha aterrizado y trae novedades frescas:
Nueva interfaz QuerySpecification que mejora cómo construir consultas de forma programática y modular.
Migración estratégica de Hibernate Commons Annotations a nuevo proyecto Hibernate Models para manejar mejor el modelado bajo el capó.
Soporte completo para Jakarta Persistence 3.2, marcando un paso más hacia Jakarta EE 11.
Solo falta una release candidate más antes del lanzamiento GA, así que ojo con esta versión que es casi la definitiva. Los detalles técnicos y guía de migración están en:
🎓 ¿Ya conoces Java y quieres llevar tus habilidades al siguiente nivel?
He creado un Curso de Java Intermedio pensado para ti que ya dominas lo básico y quieres avanzar con conceptos como POO avanzada, colecciones, concurrencia, servlets, y más.
💡 Ideal si estás buscando mejorar tu perfil profesional o prepararte para proyectos reales
💻 Acceso de por vida + proyecto final que revisaré personalmente
🔝 Solo 12,99 €
💪 Al comprarlo, me ayudas directamente a seguir creando contenido gratuito en YouTube, newsletter y más.
Es una forma sencilla de apoyar mi trabajo y seguir aprendiendo.

✅¡INSCRIBIRME EN CURSO JAVA INTERMEDIO!✅
¡Gracias por ser parte de esta comunidad de desarrolladores Java! 🙌
💥 Spring Framework: RCs, milestones y fin de soporte open-source para Cloud Data Flow
Semana a todo vapor en Springworld:
Lanzados primeros release candidates de Spring Boot, Data (2025.0.0), Security, Authorization Server, Session, Integration, Modulith y Web Services.
Segundos milestones para Spring Data 2025.1.0 y Spring Apache Kafka.
Un primer milestone del nuevo Spring Vault.
En contraste, Spring Cloud Data Flow y relacionados (Spring Cloud Deployer, Statemachine) dicen adiós al soporte open-source para enfocarse en versión comercial dentro del ecosistema Tanzu Spring. ¿Por qué? Según ellos, para asegurar la sostenibilidad del proyecto a futuro, que dura ya más de 8 años en el ruedo.
Las últimas versiones open-source sacarán humo: 2.11.x, 2.9.x y 4.0.x, respectivamente, pero después de ahí solo para clientes Tanzu.
Más info en el anuncio oficial aquí.
🧪 Open Liberty 25.0.0.4: Audit logs y InstantOn
IBM entrega una nueva versión de su app server Open Liberty 25.0.0.4 con estas novedades:
Soporte para Java 24 para aprovechar lo último del JDK
Posibilidad de capturar logs de auditoría Liberty y enviar mediante OpenTelemetry, gracias al nuevo feature Audit 2.0
Soporte InstantOn para varias prestaciones importantes como J2EE Management 1.1, Application Client Support y Web Security Service 1.1
Parches para dos vulnerabilidades críticas CVE-2025-25193 y CVE-2025-23184 que podían causar un Denial-of-Service a través de Netty y Apache CXF.
Cabronazos, si usas Open Liberty, esta release es recomendada. Detalles aquí:
🎸 JBang presenta Jash: Java meets Shell scripting
JBang se pone creativo e introduce Jash, una librería Java para ejecutar scripts shell con un enfoque fluido, predecible y con buena experiencia dev.
Si odias el lío de manejar threads y procesos con APIs clásicas, Jash viene a salvarte la vida. Esto no es magia, es puro Java bien aplicado para shell scripts que funcionan en segundo plano sin que tengas que preocuparte por manejar todo el desmadre.
Échale un vistazo al primer lanzamiento aquí:
⚡ Quarkus 3.21.4: Small fixes pero importantes
Entre la multitud de fixes, esta release de Quarkus arregla un molesto StackOverflowError
que sucedía cuando usabas retry policy del SmallRye (MicroProfile Fault Tolerance).
También añade advertencias o errores al intentar crear instancias duplicadas de HttpSecurityPolicy
, evitando posibles desastres en seguridad.
Si usas Quarkus, valdrá la pena actualizar ya mismo:
Detalles en el blog oficial
📊 Helidon 4.2.1: Métricas de lujo y mejor TCP buffering
Helidon se pone más fino con las métricas, usando unidades base en Timer
para reportes JSON más claros y precisos en el método toString()
de la clase MTimer
.
Además, implementa buffering configurable en conexiones TCP para evitar fragmentación de pequeños paquetes y mejorar performance.
¿Quieres bugfixes y estas mejoras? Aquí está todo bien masticado:
Tweet oficial con anuncio: Helidon en Twitter
🐳 GlassFish 7.0.24: Bugfixes, upgrades y despliegues rápidos
La veinticuatroava actualización de GlassFish trae:
Soporte para JDK 24 (ya vas actualizando todo, ¿no?)
Despliegue más rápido usando
walkFileTree()
que mejora la búsqueda de archivos (chécate la clase Files en Java 24, pura elegancia)Bugfixes y upgrades en dependencias para mantenerlo estable y seguro
Más detalles en las release notes oficiales y chequea el anuncio oficial en OmniFishEE.
🤩 ¡Tu opinión importa!
¡Ayúdame a mejorar esta newsletter!. Responde esta encuesta (menos de 1 minuto) para contarme qué temas prefieres y cómo puedo mejorarla.
💥 Spring Boot 3.5.0 RC1 – Ready to Rock Your Apps!
Spring Boot se pone las pilas con su primer Release Candidate 3.5.0. Aquí vamos con lo bueno:
Nuevas anotaciones @ServletRegistration y @FilterRegistration para registrar servlets y filtros con un toque más moderno y basado en anotaciones, una alternativa fresca a los antiguos ServletRegistrationBean y FilterRegistrationBean. Bye bye boilerplate.
Clases nuevas para manejar credenciales de Docker, facilitando la vida al trabajar con contenedores.
Corrección de bugs y actualización de dependencias porque los detalles marcan la diferencia.
Por otro lado, los lanzamientos 3.4.5 y 3.3.11 se pusieron serios y parchearon la vulnerabilidad CVE-2025-22235 que causaba que el método sobrecargado to() de la clase EndpointRequest fallara bajo ciertas condiciones generando un matcher null. Seguridad primero, gente. Checa los detalles en los links de release.
👉 Más info: Release Notes 3.5.0-RC1 | CVE-2025-22235
📚 Spring Data 2025.0.0 RC1 y 2025.1.0 M2 – Queries Mega Afinados
Spring Data viene fuerte con:
Mejoras y afinaciones en los lenguajes de consulta HQL, EQL y JPQL, para que tus queries sean más fiesteros.
Nuevas advertencias de deprecación para prepararnos para la eliminación de soporte JMX en la próxima gran versión 4.0. ¿Hora de decir adiós a lo viejo!
Soporte para JSpecify en múltiples sub-proyectos (JPA, MongoDB, LDAP, Cassandra, Elasticsearch, etc.), haciendo que la interoperabilidad de tipos sea menos un dolor de cabeza.
Cambio rompedor en la interfaz QueryEnhancer: la antigua configuración con spring.data.jpa.query.native.parser ya no chuta, ahora debes usar la anotación @EnableJpaRepositories para controlar esto. Sí, es un poco un cambio radical, pero para mejorar la estructura y claridad.
👉 Drillea estos cambios aquí: Spring Data 2025.0.0 RC1 | Release Notes 2025.1.0 M2
🔐 Spring Security 6.5.0 RC1 – Fortificando la Fortaleza
Los guardianes de la seguridad lanzan la RC1 de la versión 6.5.0 con estas novedades hardcore:
Mejoras en el soporte para OAuth 2.0 DPoP (Demonstrating Proof of Possession): incluyen una interfaz nueva AuthenticationEntryPoint que devuelve el header WWW-Authenticate cuando falla la autenticación DPoP. Sí, es geek, pero esencial para asegurar que solo entienden el protocolo quienes deben.
PathPatternRequestMatcher ahora usa un servlet en el patrón de rutas, llevando la precisión y performance al siguiente nivel.
Además, los lanzamientos 6.4.5 y 6.3.9 parchados arreglan la vulnerabilidad CVE-2025-22234, que rompía la mitigación contra ataques de timing en la clase DaoAuthenticationProvider. Sí, la cosa se puso seria y los devs sacaron la artillería para mantenerte seguro.
👉 Detalles frescos: 6.5.0 RC1 Release Notes | CVE-2025-22234 info
💥 Construye tu Backend en Minutos, No en Semanas
¿Cansado de perder tiempo construyendo infraestructura? ¡Déjalo en mis manos! Con Spring Boot JWT Starter Pack podrás lanzar tu backend YA.
✅ Autenticación segura con JWT
✅ Gestión de roles sin dolor de cabeza
✅ API documentada y lista para producción
✅ Compilación nativa para rendimiento superior
🚀 Menos configuración. Más código que importa.

🛡️ Spring Authorization Server 1.5.0 RC1 – OAuth 2.0 Más Listo que Nunca
Esta RC nos trae:
Metadata mejorada para soportar los specs de OAuth 2.0 DPoP y PAR (Pushed Authorization Requests). Es como tener un carné VIP extra en el mundo OAuth.
Nueva constante REQUEST_URI en la clase OAuth2ParameterNames que facilita el manejo de PAR. Los flujos OAuth se vuelven aún más suaves.
Checa más en: Spring Authorization Server 1.5.0 RC1
⭐ Spring Session 3.5.0 RC1 – Optimización y Composición
Aquí llega con:
CompositeHttpSessionIdResolver: ¿Necesitas combinar varias maneras de resolver IDs de session? Esta clase gestiona una colección de resolutores, iterándolos para obtener resultados composables. Modularidad y control en estado puro.
Optimización inteligente para JdbcIndexedSessionRepository: ahora sólo abre transacciones JDBC si hay cambios en la sesión. Nada de gastar recursos a lo loco.
Mira cómo implementarlo en: Release Notes Spring Session 3.5.0 RC1
🔗 Spring Integration 6.5.0 RC1 – Mejora Continua en Concurrencia
Entre lo más cool:
Adiós a logger.error() innecesario en la clase TcpSendingMessageHandler, porque menos ruido, más claridad.
Nueva clase LockRequestHandlerAdvice, usando el patrón LockRegistry para manejar concurrencia y asegurar acceso mutuo correcto a servicios. Esto mejora la robustez del procesamiento paralelo.
Detalles: Spring Integration 6.5.0 RC1
🧩 Spring Modulith 1.4.0 RC1 – Eventos Más Rápidos y Escenarios Más Limpios
En esta RC:
Optimización del registro y publicación de eventos con mejoras en DefaultEventPublicationRegistry y el método publishEvent() en AbstractApplicationContext, para eventos más ligeros y rápidos.
Validación mejorada para clases Scenario que sólo aceptan colecciones no vacías en cambios de estado, evitando bugs nefastos.
Explora aquí: Spring Modulith 1.4.0 RC1
☕ Spring for Apache Kafka 4.0.0 M2 – Kafka Actualizado y Optimizado
Lo más hot:
Upgrade de cliente a Apache Kafka 4.0.0 para estar al día con los nuevos lanzamientos Kafka.
En MessagingMessageListenerAdapter, el método invoke() ahora devuelve null en ciertos casos, evitando crear objetos InvocationResult innecesarios. Optimización mild pero necesaria.
Más info: Spring Kafka 4.0.0 M2
🌐 Spring Web Services 4.1.0 RC1 – Seguridad y Extensibilidad
Updates esenciales:
Soporte para configuraciones arbitrarias de Apache WSS4J (seguridad WS) mediante la clase Wss4jSecurityInterceptor. Más control y flexibilidad para proteger tus servicios SOAP.
Posibilidad de crear implementaciones custom de MethodArgumentResolver y MethodReturnValueHandler para endpoint adapters, ampliando la versatilidad de tus handlers.
Put it in your toolkit: Release Notes Spring WS 4.1.0 RC1
🔐 Spring Vault 3.2.0 M1 – Seguridad en la Nube al Día
Para los que usan Vault con AWS:
Ahora soporta IMDSv2 (Instance Metadata Service v2) en EC2, importante para evitar problemas de seguridad en AWS.
Añade autenticación con token de Github, para integrar tus secretos sin enredos.
Explora más: Spring Vault 3.2.0 M1
💡 Consejo de la Semana: Cómo versionar tus APIs REST en Spring Boot
Cuando tu API crece, versionarla es clave para mantener compatibilidad sin romper integraciones existentes. En Spring Boot, hay varias formas de hacerlo, pero la más común y mantenible es usando rutas versionadas:
@RestController
@RequestMapping("/api/v1/productos")
public class ProductoControllerV1 {
// lógica para v1
}
Y cuando lances una nueva versión:
@RestController
@RequestMapping("/api/v2/productos")
public class ProductoControllerV2 {
// nueva lógica para v2
}
✅ Ventajas:
Fácil de entender y documentar
Compatible con Swagger/OpenAPI
Permite mantener varias versiones activas al mismo tiempo
🔥 Bonus: También puedes versionar por headers (Accept: application/vnd.miapp.v1+json
) o parámetros, pero mantenerlo en la URL suele ser más claro para APIs públicas.
📩 Si te ha gustado esta edición, compártela con otros desarrolladores y nos vemos la próxima semana con más novedades.
¡Feliz coding! 🚀
Ricardo