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.
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: 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
📌 Ver en OpenJDK | Anuncio oficial
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
📌 Ver en OpenJDK | Anuncio oficial
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.
🔗 Descargar Build 23 en GitHub
📄 Notas de la release
🪲 Reporte de bugs en Java Bug Database
☕ 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.
📢 Anuncio oficial en el blog de Spring
⚙️ 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.
📄 Cambios detallados en configuración
🐳 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)
Estandariza cómo un LLM accede a herramientas externas (¡como un climaService!).
Spring AI soporta nativamente el protocolo 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