Newsletter Java: Novedades de la Semana 4 Julio 2025
Tu newsletter semanal de Programando En Java
¡Hola programador/a! 👋
¡Hola, developer! 🌶️ Esta semana está cargada de actualizaciones críticas, milestones importantes y una noticia que marca el fin definitivo de una era (sí, Applets, te estamos viendo). Aquí tienes lo último del ecosistema Java & Spring Boot. Dale scroll…🔥
Todo listo para que sigas subiendo de nivel en Java. ¡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
👨💻 JAVA vs RUST
Esta semana nos metemos de lleno en una comparativa: Java vs Rust.
🔍 ¿Cuál rinde mejor?
☕ ¿Sigue siendo Java la mejor opción para backend o Rust le está pisando los talones?
Te explico las ventajas y desventajas reales de cada lenguaje, cuándo usar uno u otro y cómo se comparan en productividad, rendimiento y curva de aprendizaje.
➡️ Si estás pensando en aprender un nuevo lenguaje o simplemente quieres saber qué tanto hype hay con Rust, este video te lo deja claro con ejemplos y casos concretos.
👉 Mira el video completo aquí:
📦 Novedades en Librerías y Frameworks
🧬 Spring Framework 7.0.0-M7
La séptima milestone de Spring Framework 7 ya está aquí con mejoras clave:
Nuevas anotaciones para resiliencia:
@Retryable
,@ConcurrencyLimit
,@EnableResilientMethods
.Interfaz
JmsClient
para operaciones comunes de envío/recepción en JMS.Nueva interfaz
HttpMessageConverters
para construir colecciones inmutables de convertidores HTTP.
💥 Esta versión refuerza la resiliencia nativa en Spring, ideal para microservicios que sobreviven al caos.
🔗 https://github.com/spring-projects/spring-framework/releases/tag/v7.0.0-M7
🚀 Spring Boot 4.0.0‑M1 disponible ahora
La primera versión mileston (M1) de Spring Boot 4 marca el inicio de la generación 4.x, con una base modular y el lanzamiento directo a Maven Central. Trae mejoras fundamentales impulsadas por Spring Framework 7.0.0.
También disponibles versiones menores:
Spring Boot 3.5.4 y 3.4.8, actualizaciones de mantenimiento con mejoras sutiles y corrección de bugs.
https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-4.0-Release-Notes
🧰 Spring Batch 6
Spring Batch 6.0 ya está oficialmente disponible. Esta versión requiere Java 17+, actualiza dependencias clave (Spring Framework 6.1.x, Micrometer, Spring Integration, etc.), e introduce cambios API importantes junto a nuevas capacidades como soporte de Postgres y mejoras en agrupación de trabajo.
🔁 Spring Integration 7.0‑M1
La versión prevía (M1) de Spring Integration 7.0 ya se ha liberado, marcando el camino hacia la compatibilidad final con Spring Framework 7.0.
https://docs.spring.io/spring-integration/reference/7.0/whats-new.html#whats-new-part
🔐 Spring Authorization Server 2.0.0‑M1
Primera milestone de Spring Authorization Server 2.0, alineada con Spring Boot 4.0‑M1 y destinada a reformar el stack OAuth2/OpenID Connect con un enfoque limpio y moderno.GitHub+9GitHub+9GitHub+9
🗂️ Spring Data JDBC ahora con soporte de composite ID
Se anuncia soporte para claves primarias compuestas (composite IDs) en Spring Data JDBC y R2DBC, mejorando el modelado de entidades con múltiples columnas como ID.
🌐 Spring Web Services actualizaciones
Spring WS 4.1.1, ya disponible como versión estable.
Spring WS 5.0.0‑M1, milestone que anticipa una próxima gran versión con alineación a Framework 7.0 y Jakarta EE 11.
🧩 Spring for GraphQL 2.0.0‑M1 lanzado
La versión M1 de Spring for GraphQL 2.0 ya está disponible, construida sobre Spring Framework 7.0.0 y preparada para integrar características avanzadas como observabilidad, transporte HTTP/WebSocket/RSocket y soporte para repositorios con Querydsl o Query by Example.
🐟 Payara Platform (Julio 2025)
Actualización triple: Community 6.2025.7, Enterprise 6.28.0 y 5.77.0. Incluye:
Mejoras en soporte JDBC con Trino.
Eliminación del CDI Dev Mode: menos complejidad, mejor rendimiento.
Alpha 3 de Payara 7.2025.1 con soporte para Jakarta EE 11.
🔗 https://blog.payara.fish/whats-new-in-the-payara-platform-july-2025-release
🧊 Open Liberty 25.0.0.7
Mejoras en el parámetro maxFiles
del logging de acceso. Ahora limpia correctamente todos los logs, no solo los del proceso actual.
🌀 Project Reactor
Dos releases esta semana:
2025.0.0-M5: Nuevas versiones milestone de
reactor-core
,reactor-netty
,reactor-pool
, y más.2024.0.8: Release de mantenimiento con upgrades de dependencias y realineación de artefactos.
🔗 https://github.com/reactor/reactor/releases/tag/2025.0.0-M5
🔗 https://github.com/reactor/reactor/releases/tag/2024.0.8
📡 Micrometer 1.16.0-M1 y Tracing 1.6.0-M1
withNoneValue()
paraKeyName
en Metrics.Soporte para Jakarta Mail y mejoras de observabilidad.
Tracing ahora usa anotaciones de
JSpecify
y soporta múltiples valores por clave (W3C baggage spec compliant).
🔗 https://github.com/micrometer-metrics/micrometer/releases/tag/v1.16.0-M1
🔗 https://github.com/micrometer-metrics/tracing/releases/tag/v1.6.0-M1
⚛️ Helidon 4.2.4
Eliminación de
GlobalConfig
, migración haciaServices.get()
.Soporte para
Gson
como alternativa a Jackson y Jakarta JSON.
🔗 https://github.com/helidon-io/helidon/blob/4.2.4/CHANGELOG.md#424
🧠 Eclipse DataGrid (¡Ahora Open Source!)
El nuevo proyecto de Eclipse, fusión de EclipseStore y MicroStream Cluster, ya es open source. Soporta procesamiento y búsqueda en memoria.
🚀 ¿Quieres aprender Java de verdad?
Entra a codeja.dev y empieza a dominar Java desde cero hasta nivel senior, con una plataforma 100% práctica, motivadora y estructurada.
🔥 ¿Qué encontrarás?
💻 Editor Web con compilación en tiempo real
🧠 Rutas de aprendizaje de junior a senior
🏆 Retos semanales y rankings para motivarte
👥 Comunidad activa para apoyarte en cada paso
🤖 Asistente con IA que te ayuda mientras escribes código
👉 Acceso VIP solo 100 plazas disponibles — ¡reserva tu lugar y sé de los primeros en probarlo!
☕ Actualizaciones del JDK
🔒 Oracle CPU de julio 2025
Actualizaciones críticas para:
JDK 24.0.2 → Release Notes
JDK 21.0.8 → Release Notes
JDK 17.0.16 → Release Notes
👉 Seguridad al día = menos Vulnerabilidades y Exposiciones Comunes en producción.
🚀 JDK 25 entra en Rampdown Phase 2
Ya no se aceptan nuevas JEPs. Solo se corregirán bugs P1 y P2. Estas son algunas de las 18 JEPs que llegarán en marzo:
JEP 470: PEM Encodings (Preview)
JEP 506: Scoped Values
JEP 507: Primitive Types en
instanceof
yswitch
(3er Preview)JEP 521: Generational Shenandoah GC
🔗 https://openjdk.org/projects/jdk/25/#Schedule
🔗 Release Notes Build 32: https://jdk.java.net/25/release-notes
🧪 JDK 26 Build 7 disponible
Incluye correcciones incrementales.
De Junior a Senior en Java
¿Sientes que podrías dar mucho más como desarrollador Java, pero no sabes por dónde empezar?
Este programa es para ti.
➡️ Aprende a dominar Spring Boot, construir proyectos reales y tomar decisiones como un verdadero Senior Developer.
🚀 Mejora tus habilidades. Aumenta tu sueldo. Acelera tu carrera.
Miles de desarrolladores ya están subiendo de nivel.
🧪 Nuevas JEPs o Propuestas
🪦 JEP 504: Bye bye Applets 👋
Estado: Targeted para JDK 26
Elimina completamente el API de Applets (ya obsoleto desde JDK 17).
Menos legacy en el classpath, más limpieza.
🛠️ Herramientas y Utilidades para Developers
🔥 GraalVM CE 24.0.2
Corrige errores como
UnsatisfiedLinkError
en JFR.Mejoras en
AMD64ArrayIndexOfOp
y uso de tipos DWORD.
Ideal para quienes compilan a nativo o usan Flight Recorder.
🧯 Liberica JDK (BellSoft)
Parches disponibles para múltiples versiones: 8u461, 11.0.28, 17.0.16, 21.0.8 y 24.0.2.
💥 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.
🎤 Evento gratuito: Eclipse DataGrid
No te pierdas “Eclipse Data Grid Introduction: In-Memory Data Processing” el 22 de julio. Ideal para quienes manejan grandes volúmenes de datos en memoria.
💡 Tip de la Semana
Cómo evitar @Value
en tests con TestPropertySource
¿Cansado de que @Value("${some.property}")
no funcione en tus tests? Usa @TestPropertySource
para inyectar propiedades directamente
@SpringBootTest
@TestPropertySource(properties = {
"feature.toggle.myFeature=true"
})
class MyServiceTest {
@Value("${feature.toggle.myFeature}")
boolean isEnabled;
@Test
void shouldEnableFeature() {
assertTrue(isEnabled);
}
}
✅ Limpio, sin archivos externos. Ideal para toggles, endpoints y mock configs.
¿Te ha molado? Comparte esta newsletter con otro friki del backend 💻
¿Preguntas o sugerencias? Responde a este correo, y charlamos.