- Programando En Java
- Posts
- Newsletter Java: Novedades de la Semana 4 Mayo 2025
Newsletter Java: Novedades de la Semana 4 Mayo 2025
Tu newsletter semanal de Programando En Java

Hola, comunidad 👋
Esta semana viene cargada de lanzamientos y actualizaciones en el mundo Java y tecnologías relacionadas. Aquí tienes el resumen completo para estar al día con lo más relevante del ecosistema.
📘 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: CodeCast con @danielespanadero
Esta semana charlo con Daniel Españadero (DIF), quien pasó de frutero a programador backend.
Nos cuenta cómo aprendió a programar desde cero, su experiencia en un bootcamp, cómo construyó su marca personal en YouTube, y da consejos prácticos sobre salud mental, aprendizaje continuo y el mercado laboral tech.
🚀 Una historia real, con aprendizajes valiosos para quienes están empezando o quieren crecer en programación.
OpenJDK Ecosystem – Progreso en JEPs y nueva Build EA
✅ Avances en JEPs para JDK 25:
2 JEPs han pasado de Proposed to Target a Targeted, es decir, ya están confirmadas para la versión final de JDK 25.
4 JEPs ascienden de Candidate a Proposed to Target, el paso previo a su confirmación.
1 nueva JEP avanza desde Draft a Candidate, lo que implica que entrará en ronda de discusión activa y posiblemente en futuras builds preliminares.
📌 Detalles completos sobre estas JEPs y su estado:
👉 https://openjdk.org/projects/jdk/25/
🧪 JEPs confirmadas para JDK 25
Esta semana se han "targeted" dos JEPs clave para Java 25. Eso significa que han superado la fase de discusión técnica y están oficialmente aprobadas para su inclusión en la próxima versión del JDK. Aquí te las resumo en detalle:
🔐 JEP 510 – Key Derivation Function (KDF) API
Esta JEP introduce una API estándar para funciones de derivación de claves (KDFs), una herramienta clave en criptografía moderna. Su objetivo es ofrecer una forma segura y extensible de generar claves adicionales a partir de una clave secreta combinada con otros datos (ej. un salt o contexto).
🔗 Si quieres profundizar en KDFs desde la perspectiva de la criptografía aplicada:
cryptography.io – Key Derivation Functions
🧵 JEP 506 – Scoped Values
Tras cuatro previews consecutivos (JDK 20 a 24), esta JEP alcanza su forma final y será incluida directamente en JDK 25. Scoped Values es una propuesta que mejora la forma de compartir datos inmutables entre hilos, sin los problemas de rendimiento o legibilidad de los ThreadLocal
.
⚙️ JDK 25 – Early Access Build 23:
Ya puedes probar la build 23 de JDK 25. Incluye:
Correcciones de bugs importantes respecto a la build 22.
Mejoras en rendimiento, especialmente en el recolector de basura (GC) y manejo de strings.
☕ 2. Jakarta EE – Camino a EE 11 y 12
🚀 Progreso de la plataforma:
Jakarta EE 11: Su especificación de plataforma ya está lista para GA en junio. La CI (Jenkins) está estable.
Jakarta EE 12: El plan está casi cerrado. Solo falta revisar Jakarta Activation (19 de mayo).
📦 Nuevas especificaciones migradas:
Jakarta Portlet 4.0 (JSR 362)
Jakarta Portlet Bridge 7.0 (JSR 378)
Se suma a Jakarta Query 1.0, impulsando funcionalidades modernas.
🗺️ Roadmap:
Core Profile (dic 2024), Web Profile (abr 2025), Platform RC1 (mayo 2025)
📖 Más info en el blog de Ivar Grimstad:
👉 #JakartaEE 281
🎓 ¿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.
¡Gracias por ser parte de esta comunidad de desarrolladores Java! 🙌
🚀 Spring Boot 3.5.0: Novedades destacadas y lo que debes saber
El equipo de Spring acaba de lanzar Spring Boot 3.5.0, una versión que cierra el ciclo antes del salto a Spring Boot 4.0 previsto para noviembre. Aunque no es una major release, trae cambios relevantes, nuevas funcionalidades y varios ajustes que podrían impactar en tus proyectos actuales.
⚙️ Principales mejoras en configuración
Esta versión pone especial énfasis en afinar el comportamiento de Spring Boot en proyectos modernos, especialmente en entornos cloud-native y multi-módulo.
bootstrapExecutor
bean autoconfigurado
Si defines unapplicationTaskExecutor
, se configura automáticamente para mejorar la inicialización en segundo plano.Más control con
spring.task.execution.mode=force
Incluso si defines solo unExecutor
, puedes forzar la creación de unAsyncTaskExecutor
.Registro de Servlets y Filters sin XML
Gracias a@ServletRegistration
y@FilterRegistration
, puedes registrar componentes web programáticamente, eliminando configuraciones XML legadas.WebClient más robusto
El cliente reactivo ahora permite configurar timeouts, redirects y otros ajustes globales.Auto-config de OAuth2 Client más granular
Mejora la cobertura de escenarios complejos y añade más opciones finas de configuración.Soporte para perfil
nativeTest
mejorado
Ideal para tests en proyectos con estructura multi-módulo.
🐳 Soporte para contenedores & Buildpacks
LLdapContainer
listo para Testcontainers y Docker Compose
Simplifica pruebas de integración con servidores LDAP.Nuevo builder por defecto:
builder-noble-java-tiny
(Paketo)
Imágenes más livianas, sin shell ni herramientas básicas. ¿Necesitas shell? Usaubuntu-noble-run-base
.Mejor integración con
~/.docker/config.json
Compatibilidad con credenciales del sistema, como Keychain en macOS, desde Maven y Gradle.
🔐 Seguridad, métricas y Actuator
Testcontainers con soporte SSL mejorado
Ahora es posible probar conexiones seguras en Cassandra, Kafka, Redis, MongoDB, y más.Nuevas métricas SSL en Actuator
ssl.chains
: cantidad y estado de cadenas de certificados.ssl.chain.expiry
: días restantes antes de que expiren.
HTTP POST para lanzar jobs Quartz
Nuevas rutas en/actuator/quartz/jobs/{grupo}/{job}
permiten gestionar jobs desde endpoints REST.Más visibilidad con
mappings
Ahora también incluye información sobreWebMvc.fn
router functions.
⚠️ Breaking Changes importantes respecto a la 3.4
📦
spring-boot-parent
ya no se publica: debes adaptar tupom.xml
.🔡 Restricciones en nombres de perfiles: solo letras, dígitos, guiones y subrayados (sin empezar/terminar con ellos).
✅ Propiedades
*.enabled
ahora solo aceptantrue
ofalse
.🔁
TestRestTemplate
respeta configuración defollow-redirects
, igual queRestTemplate
.📊 Formato JSON para logs ECS ahora es anidado.
🚫
heapdump
endpoint ahora por defecto tiene accesoNONE
.🧵 Ya no se auto-configura un
taskExecutor
por defecto.🧩
spring.data.redis.url
ahora define el DB, ignorandospring.data.redis.database
.📤 Pushgateway de Prometheus ha sido reconfigurado por completo.
💥 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 AI 1.0 GA: ¡Integración nativa de LLMs en tus apps Spring!
📢 Después de 2 años y 8 versiones milestone, Spring AI 1.0 ya es General Availability.
➡️ Blog oficial: spring.io/blog/2025/05/20/spring-ai-1-0-GA-released
🧰 API sólida y familiar
Beans,
@ConfigurationProperties
, starters... como cualquier otro proyecto Spring.Requiere Java 17+ y Spring Boot 3.x.
🔥 ¿Qué trae de nuevo?
🔄 Abstracciones portables: cambia de OpenAI a Azure o Bedrock en 2 líneas (sin tocar tu código).
🔍 Respuestas tipadas: convierte JSON a POJOs directamente → sin más Map<String,Object>
.
Docs: API completa
🤖 Modelos soportados (chat, imágenes, embeddings…)
Chat: GPT-4, Claude, Azure OpenAI
Embeddings: OpenAI, Anthropic, Vertex AI
Imagen: DALL·E, Bedrock
Audio: OpenAI, Vertex
Moderación: OpenAI Moderation API
→ Ver todos
📚 RAG + Vector DBs: ¡haz que tus LLMs lean tu propia base de datos!
🔍 API unificada VectorStore
: Cassandra, PGVector, Pinecone, Redis, MongoDB Atlas, etc.
📦 Usa QuestionAnswerAdvisor()
con ChatClient
para hacer RAG en segundos.
→ Docs RAG
🔌 Model Context Protocol (MCP)
⚙️ Spring Initializr + Config en 2 líneas
📦 Añade “Spring AI” en start.spring.io
🔑 Config mínima:
spring.ai.openai.api-key=TU_API_KEY spring.ai.openai.chat.model=gpt-4
🛠️ ChatClient + Advisors
API fluida
.user("msg").call()
.Advisors listos para usar: RAG, Conversational Memory, filtros dinámicos (
tag='java'
).
→ ChatClient | Advisors
🤩 ¡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.
💡 Consejo de la semana: "Tu código no debería saber qué LLM estás usando."
¿Por qué?
Spring AI 1.0 introduce abstracciones portables como ChatClient
, ImageClient
y EmbeddingsClient
que desacoplan tu lógica del proveedor (OpenAI, Anthropic, Azure…). Esto significa que:
✅ Puedes cambiar de modelo sin tocar tu código.
✅ La configuración vive en
application.properties
.✅ Ganas flexibilidad, reduces vendor lock-in y puedes optimizar costes.
Ejemplo:
spring.ai.openai.api-key=tu-api-key spring.ai.openai.chat.model=gpt-4
Cambia a Claude con:
spring.ai.anthropic.api-key=otra-api-key spring.ai.anthropic.chat.model=claude-3
Y tu código Java permanece exactamente igual.
ChatResponse response = chatClient.user("¿Cómo empiezo con Spring AI?").call();
Este enfoque tipo-safe y desacoplado es lo que hace que Spring AI brille frente a otros SDKs: sigue el estilo Spring que ya conoces, pero aplicado al mundo LLM. 🌱✨
📩 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
Reply