Newsletter Java: Novedades de la Semana 1 - Noviembre 2025
Tu newsletter semanal de Programando En Java
¡Bienvenido a tu dosis semanal de todo lo que importa en el mundo Java y Spring! Esta semana viene cargada con previews, incubadoras, candidatos y un Spring Framework 7 que ya huele a producción. Ponte cómodo/a y ¡empecemos!
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
🗣️ Desacoplando tu framework favorito - Meetup
¿Estás en Madrid el día 12 de Noviembre? No te pierdas mi charla sobre cómo puedes desacoplar tu lógica de negocio a tu framework para así hacerlo más flexible y poder intercambiar el framework que desees sin comprometer tú lógica de negocio.
🗿 Nerdearla 2025 - Asistiré a Neerdearla
¿Vas a ir a Nerdearla en Madrid? ¡Espero entonces verte por ahí! Voy a asistir, aunque en esta ocasión no voy a realizar ninguna charla, estaré presente en la conferencia con otros compañeros de creación de contenido.
¡Espero verte por ahí! ¡Salúdame si me ves, me encatará tener la oportunidad de conoceros de persona! 🫶
🎥 Video de la Semana - El INFIERNO de los JDK en JAVA
¿Por qué existen TANTOS JDKs en Java?
OpenJDK, Temurin, Amazon Corretto, Liberica, Zulu… ¿no se supone que Java era “escribe una vez, ejecuta en cualquier lugar”?
Esto es algo que puede confundir a muchos que programen en JAVA y se encuentren en la decisión de saber que JDK usar. ¡En esté vídeo te lo aclaro! No solamente los diferentes JDK, si no, también la historia detrás de por qué existen tantos.
Echale un vistazo 👇
👨💻 CodeCast 21 - Emilio Carrión & Iván Abad
En este episodio especial en directo nos acompañan Emilio (@emcarrio) e Iván ( @NetMentor) para una charla a fondo sobre arquitectura y diseño de software, desde sus diferencias conceptuales hasta su impacto real en proyectos de todos los tamaños.
Durante la conversación exploramos cómo evolucionan los sistemas desde monolitos bien estructurados hasta arquitecturas distribuidas, y debatimos sobre temas clave como la arquitectura hexagonal, el uso de lógica en bases de datos, la gestión de monorrepos vs multirrepos, y cómo equilibrar escalabilidad y velocidad de entrega en startups y grandes empresas.
También hablamos sobre la importancia de mantener un lenguaje estándar dentro de las organizaciones, la externalización de la autenticación, y las herramientas de testing que mejoran la colaboración entre equipos. Emilio aporta su experiencia desde el ecosistema Python y buenas prácticas arquitectónicas, mientras que Iván comparte su visión desde .NET, C# y la aplicación de patrones modernos.
También en Spotify:
📦 Novedades en Librerías y Frameworks
🔥 Spring Framework 7.0.0-RC3
Tercera (y última) release candidate antes del GA. Este RC entrega:
Soporte para AssertJ en
RestTestClientRemoción de Hamcrest en favor de
MockMvcTesterCorrección de bloqueos al restaurar con CRaC
Mejoras de documentación y actualizaciones de dependencias
🌱 Spring Data 2025.1.0-RC2
Segunda release candidate que avanza hacia un ecosistema más moderno:
Soporte para JSpecify en todos los subproyectos
Optimización AOT de repositorios usando Spring AOT
⚡ Quarkus 3.29.0
Una versión pensada para devs que quieren velocidad y flexibilidad:
Soporte para múltiples tipos de caché simultáneamente
Integración con el Debug Adapter Protocol (DAP) en Qute
🚀 Nuevo Curso en Codeja: Spring Boot Core – Fundamentos, Contenedor IoC y Gestión de Beans
¿Usas Spring Boot todos los días pero aún te parece una “caja negra”?
Este nuevo curso te enseña a entender cómo funciona Spring desde dentro, dominando el Contenedor IoC, la Inyección de Dependencias (DI) y la gestión de Spring Beans.
🗓️ Lanzamiento el 12 de Noviembre, ¡visita el link y activa tu aviso! 🔔
Aprenderás paso a paso a:
✅ Comprender el ciclo de vida del Contenedor Spring
✅ Crear y configurar beans con JavaConfig y anotaciones
✅ Dominar la inyección por constructor, @Autowired, @Qualifier y @Primary
✅ Gestionar la configuración externa y Profiles por entorno
✅ Controlar los scopes, el ApplicationContext y los eventos internos de Spring
📦 JReleaser 1.21.0
La herramienta favorita para publicar releases evoluciona:
Anuncios automáticos en Reddit con su API
Soporte para releases inmutables en GitHub
Fixes en firmas PGP con
signing.mode = COMMAND
🧬 Seed4J 2.1.0
El sucesor de JHipster Lite sigue ganando tracción:
Soporte para JDK 25
Integración de Tailwind CSS con Angular
Tipado mejorado en componentes de salud
🛠️ Gradle 9.2.0
La herramienta de build más popular trae mejoras clave:
Soporte para ARM64 en Windows
Facilidad para publicar componentes personalizados
Mejoras en los reportes de errores y advertencias
🚀 ¡Acelera tu carrera Java con Codeja!
Si estás cansado de practicar sin rumbo, prueba CodeJa: una plataforma práctica creada para que de verdad subas de nivel.
🎯 Retos reales y semanales — orientados a problemas de producción.
🏆 Leaderboard global — compite y gana visibilidad.
😎 Retos semanales — compite por la mejor posición en los retos semanales
📚 Cursos prácticos de Java — Spring Boot y frameworks del ecosistema Java aprende desde lo básico hasta lo avanzado con proyectos guiados.
🔁 Historial de envíos — revisa, compara y vuelve a versiones anteriores de tu código.
💬 Mentorías 1:1 — arquitectura, revisión de CV o preparación de entrevistas.
☕ Actualizaciones del JDK
JDK 26 Early Access Build 22
Disponible esta semana con múltiples correcciones y mejoras internas.
Incluye fixes varios desde el build 21
Ideal para testing temprano de proyectos futuros
🧪 Nuevas JEPs o Propuestas
✅ JEP 525 — Structured Concurrency (Sixth Preview)
Simplifica la programación concurrente tratándola como una unidad lógica.
Nueva API:
StructuredTaskScope.Joiner.onTimeout()Mejora la cancelación y la observabilidad
👉 JEP 525
✅ JEP 529 — Vector API (11th Incubator)
Optimización de cálculos vectoriales con soporte para CPUs modernas.
Sin cambios desde JDK 25
Seguirá incubando hasta que Valhalla esté listo
👉 JEP 529
✅ JEP 516 — AOT Object Caching with Any GC
Reduce startup/warmup time soportando cualquier GC, incluido ZGC.
👉 JEP 516
✅ JEP 500 — Prepare to Make Final Mean Final
Adiós a la mutación de campos final vía reflexión profunda. 🔒
👉 JEP 500
🆕 JEP 530 — Primitive Types in Patterns and switch (4th Preview)
Mejoras sutiles pero importantes en instanceof y switch con tipos primitivos.
Tighter dominance checks
Mejor precisión en conversiones
👉 JEP 530
🛠️ Herramientas y Utilidades para Developers
🧪 JReleaser 1.21.0
JReleaser continúa consolidándose como la herramienta clave para automatizar el empaquetado, publicación y distribución de proyectos Java. En esta versión 1.21.0, llegan dos mejoras que simplifican enormemente la gestión de versiones y lanzamientos:
Integración con Reddit: ahora puedes publicar automáticamente anuncios de nuevos lanzamientos en comunidades específicas, ideal para proyectos open source que buscan visibilidad y engagement.
GitHub Immutable Releases: esta nueva funcionalidad permite crear releases inmutables en GitHub, impidiendo modificaciones accidentales o maliciosas después del lanzamiento. Es un paso hacia una mayor trazabilidad y seguridad en la cadena de suministro del software.
Otras novedades menores incluyen:
Soporte mejorado para temas personalizados en los anuncios.
Mejor integración con GraalVM Native Image.
Actualizaciones en el pipeline de publicación a Maven Central y SDKMAN!.
📄 Release notes: v1.21.0
🧱 Seed4J 2.1.0
Seed4J es una plantilla moderna que toma inspiración directa de JHipster Lite, pero con un enfoque mucho más modular y orientado al ecosistema actual de Spring Boot y JDK 25.
Su objetivo es ofrecer un arranque limpio, minimalista y preparado para producción, con soporte para arquitecturas hexagonales y patrones DDD desde el primer minuto. En esta nueva versión se destacan:
Compatibilidad completa con JDK 25.
Soporte para modularización avanzada (submódulos de dominio, aplicación e infraestructura).
Configuraciones listas para CI/CD en GitHub Actions y Docker Compose.
Plantillas base para PostgreSQL, Redis y Kafka.
Además, Seed4J introduce un CLI experimental para generar proyectos y módulos desde la línea de comandos, simplificando el trabajo de equipos que arrancan microservicios o APIs desde cero.
📄 Release notes: v2.1.0
🌍 Comunidad y Ecosistema
Voxxed Days Thessaloniki 2025
🗓️ 7 – 8 de noviembre de 2025
📍 Tesalónica, Grecia
Una conferencia muy esperada en el sur de Europa, parte de la familia Voxxed, que reúne a desarrolladores Java y JVM para compartir experiencias sobre arquitectura, cloud, microservicios y cultura dev. Perfecta para quienes buscan networking internacional y charlas técnicas de alto nivel.
Web: voxxeddays.com/thessaloniki
Devoxx Morocco 2025
🗓️ 12 – 14 de noviembre de 2025
📍 Marrakech, Marruecos
El evento Java más importante del norte de África, con una atmósfera única que combina innovación, comunidad y cultura local. Devoxx Morocco atrae a speakers y desarrolladores de todo el mundo para hablar sobre Java, IA, arquitectura y el futuro del desarrollo en la nube.
Web: devoxx.ma
Clojure/Conj 2025
🗓️ 12 – 14 de noviembre de 2025
📍 Charlotte, Carolina del Norte, EE. UU.
Aunque centrada en Clojure, esta conferencia tiene un fuerte enfoque en el ecosistema JVM. Ideal para quienes quieran explorar paradigmas funcionales y ver cómo Clojure y Java pueden convivir en proyectos modernos.
Web: https://clojure.org/events/2025/clojure-conj
JConf Guatemala 2025
🗓️ 15 de noviembre de 2025
📍 Ciudad de Guatemala, Guatemala
El mayor encuentro Java de Centroamérica, con charlas en español e inglés, talleres prácticos y presencia de líderes del ecosistema Java latinoamericano. Una excelente oportunidad para conectar con la comunidad hispanohablante y descubrir proyectos locales.
Web: https://2025.jconf.gt/es/
💡 Tip de la semana
Spring Boot + OAuth2 Resource Server: Custom Claims en JWT
¿Necesitas acceder a claims personalizados directamente desde un endpoint?
@GetMapping(”/me”)
public Map<String, Object> me(@AuthenticationPrincipal Jwt jwt) {
return Map.of(
“user_id”, jwt.getClaim(”user_id”),
“roles”, jwt.getClaim(”roles”)
);
}Esto funciona cuando tu app está configurada como @EnableOAuth2ResourceServer. Útil para evitar lógica innecesaria en filtros o servicios. Simple, elegante y seguro.
¿Te ha molado? Comparte esta newsletter con otro friki del backend 💻
¿Preguntas o sugerencias? Responde a este correo, y charlamos.









