Plan de 30 días · 9 fases

Java 17 y 21 con Spring Boot 3, de cero a producción

Un día por tema: qué es, cómo funciona por dentro, una sesión práctica de 90 minutos, preguntas para comprobar que lo has entendido y katas. Cada fase cierra con un quiz.

Empezar por el día 1 Instalación de JDK, Dominio de Apache Maven y Anatomía de Dependencias

Cómo es cada día

Conceptos
Cada concepto con su explicación, un ejemplo de código y el error típico, y qué cambia entre Java 17 y 21.
Sesión de 90 minutos
Cuatro bloques cronometrados para practicar lo del día con un resultado que puedes comprobar.
Ponte a prueba
Explícalo desde cero, preguntas por niveles y un reto del tutor.
Práctica
Katas, reglas de oro y un paso del proyecto guiado «Pedidos», que crece contigo de un día a otro.

El progreso se guarda en este navegador, sin cuentas. Puedes exportarlo e importarlo desde «Tu progreso». 121 afirmaciones de quiz y un repaso espaciado de las que falles.

El temario

Fase 0: Setup Profesional, JDK y Dominio de Maven

  1. Día 1 Instalación de JDK, Dominio de Apache Maven y Anatomía de Dependencias Gestión de JDK 17 y 21, Maven Wrapper (mvnw), Anatomía del pom.xml, Scopes y Plugins
Quiz de la fase 0: 10 afirmaciones de verdadero o falso

Fase 1: Java Vanilla — El Núcleo del Lenguaje (17 & 21)

  1. Día 2 Cimientos del Lenguaje, POO Limpia y Records Inmutables Primitivos vs Wrappers, Modificadores de Acceso y Modelado de Datos en Java 17 y 21
  2. Día 3 Programación Orientada a Objetos de Verdad: Herencia, Interfaces y Polimorfismo Clases abstractas y jerarquías sealed, interfaces con métodos default, sobrescritura y enlace dinámico, static y final, y enums con comportamiento
  3. Día 4 Memoria JVM, Contrato equals/hashCode y Manejo de Excepciones El Ciclo de Vida de los Objetos, Colisiones en Tablas Hash y Try-With-Resources en Java 17/21
  4. Día 5 El Collection Framework y Genéricos en Java 17 y 21 List, Set, Map, Queue y Deque, Sequenced Collections en Java 21 y rendimiento asintótico
  5. Día 6 Programación Funcional: Streams, Optional y Pattern Matching en 17/21 Pipelines Perezosos, Sealed Interfaces y el Salto del Pattern Matching de Java 17 a Java 21
  6. Día 7 APIs del Día a Día: Fechas, Texto, Ficheros, HTTP y Logging java.time, StringBuilder y expresiones regulares, NIO con Files y Path, HttpClient y logging con SLF4J y Logback
Quiz de la fase 1: 19 afirmaciones de verdadero o falso

Fase 2: De Vanilla a la Necesidad de Herramientas

  1. Día 8 Testing Profesional en Java Puro: JUnit 5 y AssertJ Pruebas Unitarias Rápidas, Ciclo de Vida de Maven y TDD en Java 17 y 21
  2. Día 9 Acceso a Datos Artesanal con JDBC: El Dolor del SQL Manual Connection, PreparedStatement, Mapeo Manual y Transacciones en Java 17/21
  3. Día 10 Inyección de Dependencias Manual: El Nacimiento de Spring El Operador new como Acoplamiento, Inversión de Control (IoC) y Ensamblado en el main()
  4. Día 11 Mockito y Dobles de Prueba: Tests Unitarios Aislados Stubs, mocks, fakes y spies, @Mock e @InjectMocks, verify y ArgumentCaptor, y qué no conviene mockear
Quiz de la fase 2: 14 afirmaciones de verdadero o falso

Fase 3: El Salto a Spring Boot 3 y APIs REST

  1. Día 12 El Contenedor de Beans de Spring Boot 3 e Inyección Idiomática ApplicationContext, Component Scanning, Requisitos de Java 17 y Compatibilidad con Java 21
  2. Día 13 APIs REST Robustas: DTOs con Records y ProblemDetail RFC 7807 @RestController, Jakarta Validation Declarativa y Manejo Global de Errores en 17/21
  3. Día 14 Spring Data JPA e Hibernate: Automatizando la Persistencia Entidades, Ciclo de Vida del EntityManager, Dirty Checking y Transacciones en 17/21
  4. Día 15 JPA en Producción: Relaciones, N+1, Paginación y Migraciones @ManyToOne y @OneToMany, LAZY y EAGER, JOIN FETCH y @EntityGraph, Pageable y Flyway
Quiz de la fase 3: 15 afirmaciones de verdadero o falso

Fase 4: Seguridad, Concurrencia y Reactividad vs Virtual Threads

  1. Día 16 Seguridad Stateless con Spring Security 6 y JWT en Java 17/21 SecurityFilterChain, Sesiones sin Estado, Filtros OncePerRequestFilter y Autorización por Método
  2. Día 17 Concurrencia Clásica y Java Memory Model ExecutorService, synchronized y ReentrantLock, volatile y happens-before, atómicos y ConcurrentHashMap, y CompletableFuture
  3. Día 18 Concurrencia en la JVM: De Hilos Clásicos a Virtual Threads en Java 21 Project Loom, Platform Threads vs Virtual Threads, Thread Pools y Concurrencia Estructurada
  4. Día 19 Programación Reactiva (Project Reactor, WebFlux, RxJava) vs Virtual Threads Mono, Flux, Backpressure, Netty no bloqueante vs el Modelo Imperativo de Java 21
Quiz de la fase 4: 14 afirmaciones de verdadero o falso

Fase 5: Testing de Integración, APIs y Carga

  1. Día 20 Testing de Integración Real con Testcontainers y PostgreSQL Pruebas de Extremo a Extremo sin Depender de Simuladores H2 en Memoria
  2. Día 21 Tests de API y de Carga: MockMvc, REST Assured, BDD y JMeter Probar la API como la usa un cliente, escribir escenarios de negocio con Cucumber y medir el rendimiento antes de producción
Quiz de la fase 5: 10 afirmaciones de verdadero o falso

Fase 6: Mensajería Asíncrona con Kafka, RabbitMQ, EDA y CQRS

  1. Día 22 Mensajería Asíncrona con Apache Kafka y Spring Boot 3 Topics, Partitions, Consumer Groups, Producers, KafkaTemplate y Serialización Avro/JSON
  2. Día 23 RabbitMQ, Patrones de Mensajería y Comparativa Estratégica con Kafka Exchanges, Queues, Bindings, Routing Keys, AMQP 0-9-1, Spring AMQP y Cuándo Elegir Cada Uno
  3. Día 24 Arquitectura Orientada a Eventos y Patrón Outbox Eventos de dominio e integración, publicación fiable con Outbox, consumidores idempotentes y consistencia eventual
  4. Día 25 CQRS y Event Sourcing: Modelos de Lectura y Estado como Historia Separar comandos y consultas, construir proyecciones desde eventos, guardar el estado como secuencia de eventos y saber cuándo no merece la pena
Quiz de la fase 6: 15 afirmaciones de verdadero o falso

Fase 7: API Gateway, API-First, Arquitectura Hexagonal Enterprise y Sagas

  1. Día 26 API Gateway, API-First Design y Contratos OpenAPI 3.1 Spring Cloud Gateway, Enrutamiento Declarativo, Generación de Código con OpenAPI Generator
  2. Día 27 Arquitectura Hexagonal (Ports & Adapters) y Clean Architecture Dominio Aislado, Puertos de Entrada/Salida, Adaptadores de Infraestructura y Paquetes de DDD
  3. Día 28 Arquitecturas Distribuidas: Sagas, Circuit Breaker, Resiliencia y Librerías Spring Boot Patrón Saga (Orquestación vs Coreografía), Resilience4j, Spring Boot Actuator y Starters Esenciales
Quiz de la fase 7: 10 afirmaciones de verdadero o falso

Fase 8: Contenedores, Kubernetes / OpenShift y Observabilidad LKA / LGTM

  1. Día 29 Contenedores y Kubernetes / OpenShift para Java Spring Boot Docker multi-stage, JRE headless, Pods, Deployments, Services, ConfigMaps, Secrets, Ingress/Routes y Probes
  2. Día 30 Observabilidad Completa: Grafana, Prometheus, Loki y OpenTelemetry / Tempo (LKA / LGTM) Los Tres Pilares: Métricas con Micrometer, Logs Estructurados JSON con Loki y Trazas Distribuidas con Tempo
Quiz de la fase 8: 14 afirmaciones de verdadero o falso