Newsletter Java: Novedades de la Semana 2 - 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
🎥 Video de la Semana - ¿Por qué JAVA es TAN ODIADO?
Java es un lenguaje que normalmente es bastante odiado, pero ¿sabes por qué? ¿es todo verdad? ¿qué tiene de diferente con otros lenguajes?
En este vídeo te explico por qué es así, qué es verdad y qué no es tan cierto como te lo cuentan.
Echale un vistazo 👇
👨💻 CodeCast 22 - Jonathan Vila
En este episodio entrevisto a Jonathan Vila 🥑 ☕️ con más de 35 años en el mundo tecnológico, con una historia fascinante que comienza desde su infancia programando en los ordenadores que encontraba en supermercados y que hoy es un Developer Advocate en Sonar .
Jonathan nos comparte cómo el descubrimiento de las comunidades de desarrolladores transformó su carrera profesional, abriéndole puertas a nuevas tecnologías, proyectos internacionales y formas de trabajo como el full remote.
Además, nos explica qué es un Developer Advocate, su rol clave como puente entre las empresas y las comunidades, y cómo crea contenido que ayuda a los desarrolladores a adoptar nuevas tecnologías sin ser un vendedor tradicional.
📦 Novedades en Librerías y Frameworks
🎉 Spring Framework 7.0
¡Tenemos nueva generación del framework!
Spring Framework 7.0 ya es GA, lo que inaugura una nueva etapa construida sobre Java 25, el nuevo LTS. Esta nueva base será fundamental para Spring Boot 4.0.
Cambios clave:
Compatibilidad con Java 25, manteniendo soporte mínimo en Java 17.
Actualización al stack Jakarta EE 11: Servlet 6.1, JPA 3.2, Bean Validation 3.1.
Null-safety completa mediante JSpecify.
Compatibilidad con Jackson 3.0 (con soporte deprecado para 2.x).
Soporte para Kotlin 2.2.
Migración a JUnit 6.0.
☁️ Spring Cloud 2025.1.0-RC1 (Oakwood)
También tenemos novedades en el mundo cloud:
La release candidate 2025.1.0-RC1 del release train Oakwood está lista y disponible en el repositorio Spring Milestone.
Compatibilidad con Spring Boot 4.0.0-RC2.
Ajustes para soporte de Jackson 3.
Primeras integraciones con JSpecify null-safety.
Actualizaciones de dependencias y varios bug fixes.
🤖 Spring AI 1.1 – General Availability
La inteligencia artificial dentro del ecosistema Spring está avanzando muy rápido y esta semana llega la versión 1.1 GA, con más de 850 mejoras, fixes y actualizaciones de documentación.
Integración completa con Model Context Protocol (MCP).
Capacidades avanzadas de AI.
Más proveedores de modelos compatibles.
Mejoras significativas en estabilidad y documentación.
🛠️ Spring Tools 4.32.2
Nueva versión de mantenimiento para Spring Tools for Eclipse, principalmente enfocada en solucionar un problema en macOS 26.1: la selección multinea había dejado de mostrarse correctamente.
🔧 Qué resuelve:
El highlight multi-línea vuelve a funcionar en distribuciones basadas en Eclipse.
Se agradece especialmente a Sebastian Ratz, de SAP, por compartir el workaround.
📦 Spring Batch 6.0.0-RC2
La segunda release candidate del nuevo Spring Batch 6 introduce por fin una funcionalidad muy esperada: la configuración de batch artefacts mediante lambda expressions contextuales.
🚀 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
☕ Actualizaciones del JDK
El JDK 26 ya tiene el calendario de lanzamiento confirmado y varias JEPs han sido promovidas esta semana. Aquí lo más relevante:
🗓️ Fechas clave para JDK 26:
📍 Rampdown Phase One: 4 diciembre 2025
📍 GA (General Availability): 17 marzo 2026
JEP 529: Vector API (11ª incubación)
Sigue perfeccionando el soporte para cálculos vectoriales con rendimiento superior al escalar. Aún en incubación, esperando las mejoras de Project Valhalla.
JEP 516: Ahead-of-Time Object Caching with Any GC
Mejora la carga y enlace de clases para reducir tiempos de arranque, ahora compatible con todos los GC, incluido ZGC.
JEP 500: Make Final Mean Final
El final es final. Esta propuesta desactiva la modificación de campos final mediante reflexión (sí, adiós a setAccessible(true) en campos inmutables).
🚀 ¡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.
🧪 Nuevas JEPs o Propuestas
Tres nuevas JEPs han sido promovidas a “Proposed to Target” para JDK 26. Ojo con estas:
JEP 530: Primitive Types en patterns, instanceof y switch (4º preview)
Mejora la seguridad en conversiones y controles de dominancia en switch.
JEP 526: Lazy Constants (2º preview)
Renombrada desde “Stable Values”, permite inicializar valores inmutables de forma diferida, ganando flexibilidad sin perder seguridad.
JEP 524: PEM Encodings for Cryptographic Objects (2º preview)
Mejora la API para codificación PEM, renombra clases clave y añade soporte de encriptación/desencriptación para KeyPair y PKCS8EncodedKeySpec.
🌍 Comunidad y Ecosistema
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/
F[Scala] 2025
🗓️ 22 de noviembre de 2025
📍 Moscú, Rusia (y online)
Un evento centrado en Scala, pero profundamente ligado al ecosistema JVM. Perfecto para quienes quieran explorar programación funcional, tipado avanzado y cómo integrar Scala y Java en arquitecturas modernas.
Web: https://yandex.ru/project/verticals/fscala-2025
JakartaOne Livestream 2025
🗓️ 2 de diciembre de 2025
📍 Online
La conferencia totalmente virtual dedicada al universo Jakarta EE. Un día de charlas con líderes del sector, casos prácticos y todo lo nuevo en especificaciones y cloud-native Java.
Web: https://jakartaone.jakarta.ee/
JConf Perú 2025
🗓️ 3 de diciembre de 2025
📍 Lima, Perú
Una de las conferencias Java más importantes de Sudamérica, con sesiones sobre arquitectura, rendimiento, Spring, cloud y herramientas modernas del ecosistema. Un evento especialmente relevante para la comunidad latina.
Web: https://www.jconfperu.com/
Ya!vaConf 2025
🗓️ 4 – 5 de diciembre de 2025
📍 Varsovia, Polonia (y online)
Una conferencia Java europea con enfoque en prácticas modernas: arquitectura limpia, microservicios, observabilidad y herramientas para desarrollo productivo. Además, cuenta con modalidad híbrida para seguirla desde cualquier lugar.
💡 Tip de la semana
Evita el @Transactional en métodos private
Spring no aplica proxies a métodos private, lo que significa que un método anotado con @Transactional y declarado como private... simplemente no funcionará como esperas.
✅ Correcto:
@Service
public class OrderService {
@Transactional
public void placeOrder(Order order) {
// lógica de negocio aquí
}
}
❌ Incorrecto:
@Service
public class OrderService {
@Transactional
private void placeOrder(Order order) {
// No se aplicará transacción
}
}👉 ¿La solución? Usa public o protected, o refactoriza la lógica a un bean separado si quieres encapsular comportamiento.
¿Te ha molado? Comparte esta newsletter con otro friki del backend 💻
¿Preguntas o sugerencias? Responde a este correo, y charlamos.






