Saltar al contenido principal

Formación Spring Boot

Desarrollo de Aplicaciones Java Modernas​

Código del curso: 420-XXX-XX
Sesión: Invierno 2025
Docente: Por definir
Institución: inskillflow academy


Visión General del Curso​

Esta formación completa le permitirá dominar Spring Boot, el framework Java más popular para el desarrollo de aplicaciones modernas. Desde la introducción hasta conceptos avanzados, aprenderá a crear aplicaciones profesionales robustas y escalables.

Objetivos de Aprendizaje​

Al finalizar este curso, usted será capaz de:

  • Comprender los fundamentos de Spring Boot y su ecosistema
  • Desarrollar aplicaciones web con Spring MVC y REST APIs
  • Gestionar la persistencia de datos con Spring Data JPA
  • Proteger sus aplicaciones con Spring Security
  • Desplegar y monitorear aplicaciones en producción
  • Crear microservicios con Spring Cloud
  • Aplicar buenas prácticas de desarrollo Java moderno

Enfoque Pedagógico​

70% Práctica - 30% Teoría

Cada módulo combina:

  • Clases magistrales sobre conceptos fundamentales
  • Laboratorios prácticos guiados
  • Proyectos reales de desarrollo
  • Ejercicios y cuestionarios

Capítulo 1 — Lista de cuestionarios​

Ponga a prueba sus conocimientos después de cada módulo:

MóduloQuizTema
2Quiz Módulo 2Primeros pasos, Spring Initializr, anotaciones básicas
3Quiz Módulo 3Arquitectura en capas, CRUD, validación
4Quiz Módulo 4PostgreSQL, Jakarta Persistence, Hibernate, Lombok
5Quiz Capítulo 1IoC e inyección de dependencias
5Quiz Capítulo 2Tipos de inyección, @Qualifier
5Quiz Capítulo 3Beans y contexto Spring
5Quiz Capítulo 4Ámbitos y configuración
6Quiz Módulo 6JPA avanzado, convenciones, relaciones, @Query
7Quiz Módulo 7Datasources, transacciones, Flyway
8Quiz Módulo 8Spring Security, JWT, OAuth2
9Quiz Módulo 9Tests unitarios, integración, MockMvc
10Quiz Módulo 10Excepciones, logging, Logback
11Quiz Módulo 11Actuator, Prometheus, Grafana
12Quiz Módulo 12Docker, CI/CD, despliegue
13Quiz Módulo 13Microservicios, Eureka, Gateway
14Quiz Módulo 14Cache Redis, RabbitMQ, WebSocket

Capítulo 2 — Lista de Trabajos Prácticos​

Todos los TPs del curso, organizados por módulo:

Módulo 1 — Introducción​

TPTemaDuración
TP1.1Instalación de Java JDK 17 (Windows, macOS, Linux)20-30 min
TP1.2Instalación de Maven 3.9.x (Windows, macOS, Linux)30-45 min

Módulo 2 — Primeros Pasos​

TPTemaDuración
TP2.1Aplicación "Greeting" con Spring Boot1-2h
TP2.2Base de datos H2 (memoria y persistencia)1-2h

Módulo 3 — Arquitectura en Capas y CRUD​

TPTemaDuración
TP3.1Arquitectura CRUD completa (guiado con código)4-6h
TP3.2CRUD autónomo — mismo enunciado, sin código (desafío)2-3h

Módulo 4 — Bases de Datos en Producción​

TPTemaDuración
TP4.1Migración PostgreSQL con Jakarta Persistence2-3h

Módulo 5 — Spring Core (IoC / DI)​

TPTemaDuración
TP5.1Inyección de dependencias avanzada1-2h
TP5.2Gestión de beans y ámbitos1-2h
TP5.3Configuración y perfiles1-2h

Módulo 6 — JPA Avanzado​

TPTemaDuración
TP6.1Convenciones de nombrado avanzadas2h
TP6.2Relaciones Employee-Department2-3h
TP6.3Ejercicio Airport-Flight-Passenger3-4h

Módulo 7 — Transacciones y Migraciones​

TPTemaDuración
TP7.1Configuración Datasource1-2h
TP7.2Transacciones y Rollback2h
TP7.3Migración con Flyway1-2h

Módulo 8 — Spring Security​

TPTemaDuración
TP8.1Autenticación por formulario1-2h
TP8.2Autenticación JWT2-3h
TP8.3Roles y permisos2h
TP8.4OAuth2 con Google2h

Módulo 9 — Tests​

TPTemaDuración
TP9.1Tests unitarios del Service Layer2h
TP9.2Tests de integración de Repositories2h
TP9.3Tests REST API con MockMvc2h

Módulo 10 — Excepciones y Logging​

TPTemaDuración
TP10.1Gestión centralizada de errores2h
TP10.2Sistema de logging profesional1-2h

Módulo 11 — Monitoring​

TPTemaDuración
TP11.1Configuración Actuator1-2h
TP11.2Monitoring Prometheus y Grafana2-3h

Módulo 12 — Despliegue​

TPTemaDuración
TP12.1Dockerización completa2-3h
TP12.2Pipeline CI/CD y despliegue2-3h

Módulo 13 — Microservicios​

TPTemaDuración
TP13.1Eureka Server y clientes2h
TP13.2Config Server1-2h
TP13.3API Gateway2h
TP13.4Feign y Resilience4j2-3h

Módulo 14 — Técnicas Avanzadas​

TPTemaDuración
TP14.1Cache con Redis2h
TP14.2Mensajería con RabbitMQ2h
TP14.3WebSocket tiempo real2h
TP14.4Tareas programadas1-2h

Plan de Curso - 19 Módulos​

MÓDULO 1 - Introducción a Spring Boot​

Duración: 1 sesión

Contenido:

  • Historia y evolución de Spring Boot
  • Modelo MVC (Model-View-Controller)
  • Apache Tomcat y servidores integrados
  • Jackson y gestión JSON
  • Auto-configuración y convenciones

Objetivos:

  • Comprender el ecosistema Spring
  • Identificar las ventajas de Spring Boot
  • Descubrir los conceptos fundamentales

MÓDULO 2 - Primeros Pasos con Spring Boot [COMPLETADO]​

Duración: 2-3 sesiones

Contenido:

  • Spring Initializr
  • Estructura de un proyecto Spring Boot
  • Archivos de configuración (application.properties/yml)
  • Anotaciones básicas (@RestController, @Service, @Repository)
  • Introducción a los Repositories JPA (4 métodos básicos: save, findById, findAll, deleteById)
  • Convenciones de nombrado simples (findBy, And, Or)

Trabajos Prácticos:

  • TP1: Aplicación Greeting con Visual Studio Code
  • TP2: Base de Datos H2 (Memoria y Persistencia)

Nota pedagógica: Módulo simplificado para enfocarse en los fundamentos. Los TPs avanzados se han trasladado a los Módulos 3 y 4 con la teoría correspondiente.


MÓDULO 3 - Arquitectura en Capas y CRUD Completo [COMPLETADO]​

Duración: 2-3 sesiones

Contenido Teórico:

  • La capa Service en detalle (rol, responsabilidades, separación de preocupaciones)
  • Validación de datos con Bean Validation (JSR 380)
  • Anotaciones: @NotNull, @NotEmpty, @Size, @Min, @Max, @Email, @Pattern, @Valid
  • Gestión profesional de errores HTTP
  • ResponseEntity y códigos de estado HTTP (200, 201, 204, 400, 404, 500)
  • @ExceptionHandler y @ControllerAdvice
  • Arquitectura 3 capas profesional

Trabajos Prácticos:

  • TP1: Arquitectura CRUD Completa (API Product con validación y gestión de errores)

Prerrequisitos: Módulo 2 completado

Nota: Este módulo contiene el antiguo TP3 del Módulo 2, ahora con TODA la teoría necesaria.


MÓDULO 4 - Bases de Datos en Producción [COMPLETADO]​

Duración: 2-3 sesiones

Contenido Teórico:

  • PostgreSQL: Instalación, configuración, herramientas de administración
  • Jakarta vs Javax Persistence (historia, migración, compatibilidad)
  • Hibernate y estrategias DDL (none, validate, update, create, create-drop)
  • Dialectos Hibernate y configuración
  • Lombok: @Data, @Getter, @Setter, @NoArgsConstructor, @AllArgsConstructor, @Builder
  • Migración entre bases de datos

Trabajos Prácticos:

  • TP1: Migración PostgreSQL y Producción (con Lombok, Jakarta, multi-BDD)

Prerrequisitos: Módulo 2 y 3 completados

Nota: Este módulo contiene el antiguo TP4 del Módulo 2, ahora con TODA la teoría necesaria.


MÓDULO 5 - Spring Core - IoC y DI Avanzado [Próximamente]​

Duración: 2 sesiones

Contenido:

  • Inversión de Control (IoC) en profundidad
  • Inyección de Dependencias (DI) avanzada
  • Beans y contexto Spring
  • Ciclo de vida de los beans
  • Ámbitos (@Singleton, @Prototype, @Request, @Session)
  • Configuración Java vs XML

Labs:

  • Lab 5.1: Inyección de dependencias avanzada
  • Lab 5.2: Gestión de beans y ámbitos
  • Lab 5.3: Configuración personalizada

MÓDULO 6 - Spring Data JPA Avanzado [COMPLETADO]​

Duración: 3 sesiones

Contenido:

  • Convenciones de nombrado completas (15+ palabras clave: Between, LessThan, GreaterThan, Like, In, IsNull, etc.)
  • Joins y relaciones complejas (@OneToMany, @ManyToOne, @ManyToMany)
  • JPQL y consultas personalizadas con @Query
  • Consultas nativas SQL
  • Paginación y orden avanzado
  • Optimización de rendimiento (lazy loading, fetch strategies)

Labs:

  • Lab 6.1: Convenciones de nombrado avanzadas
  • Lab 6.2: Joins Employee-Department
  • Lab 6.3: Ejercicio Airport-Flight-Passenger (20 preguntas)
  • Lab 6.4: Evaluación completa con solucionario

Nota: Este módulo contiene el contenido JPA avanzado que estaba inicialmente en el Módulo 2 (Capítulo 5 original).


MÓDULO 7 - Bases de Datos y Transacciones [Próximamente]​

Duración: 2 sesiones

Contenido:

  • Configuración de datasources
  • Gestión de transacciones (@Transactional)
  • Migración de esquema (Flyway, Liquibase)
  • Conexión a diferentes BDD (MySQL, PostgreSQL, H2)

Labs:

  • Lab 7.1: Configuración multi-datasources
  • Lab 7.2: Transacciones y rollback
  • Lab 7.3: Migración con Flyway

MÓDULO 8 - Spring Security​

Duración: 2 sesiones

Contenido:

  • Autenticación y autorización
  • Configuración de seguridad
  • JWT (JSON Web Tokens)
  • OAuth2 y SSO
  • Protección CSRF

Labs:

  • Lab 8.1: Autenticación básica
  • Lab 8.2: JWT Authentication
  • Lab 8.3: Roles y permisos

MÓDULO 9 - Tests con Spring Boot​

Duración: 2 sesiones

Contenido:

  • Tests unitarios con JUnit 5
  • Tests de integración
  • MockMvc y WebTestClient
  • Mocking con Mockito
  • Cobertura de código

Labs:

  • Lab 9.1: Tests unitarios
  • Lab 9.2: Tests de integración
  • Lab 9.3: Tests REST API

MÓDULO 10 - Gestión de Excepciones y Logging​

Duración: 1 sesión

Contenido:

  • @ControllerAdvice y gestión global
  • Respuestas de error personalizadas
  • Logging con SLF4J y Logback
  • Niveles de logs y configuración

Labs:

  • Lab 10.1: Gestor de excepciones global
  • Lab 10.2: Configuración de logging
  • Lab 10.3: Logs estructurados

MÓDULO 11 - Spring Boot Actuator y Monitoring​

Duración: 1 sesión

Contenido:

  • Endpoints Actuator
  • Métricas y health checks
  • Monitoring con Prometheus y Grafana
  • Tracing distribuido

Labs:

  • Lab 11.1: Configuración Actuator
  • Lab 11.2: Métricas personalizadas
  • Lab 11.3: Dashboard de monitoring

MÓDULO 12 - Despliegue y Producción​

Duración: 2 sesiones

Contenido:

  • Packaging (JAR vs WAR)
  • Perfiles de entorno
  • Despliegue en servidores
  • Contenerización con Docker
  • CI/CD con GitHub Actions

Labs:

  • Lab 12.1: Build y packaging
  • Lab 12.2: Dockerfile y Docker Compose
  • Lab 12.3: Pipeline CI/CD

MÓDULO 13 - Spring Cloud y Microservicios​

Duración: 2 sesiones

Contenido:

  • Arquitectura de microservicios
  • Service discovery (Eureka)
  • Configuración centralizada (Config Server)
  • API Gateway
  • Comunicación entre servicios

Labs:

  • Lab 13.1: Eureka Server y clientes
  • Lab 13.2: Config Server
  • Lab 13.3: API Gateway con Spring Cloud Gateway

MÓDULO 14 - Técnicas Avanzadas​

Duración: 2 sesiones

Contenido:

  • Programación reactiva (WebFlux)
  • Cache con Spring Cache (Redis)
  • Mensajería asíncrona (RabbitMQ, Kafka)
  • Tareas programadas
  • WebSockets

Labs:

  • Lab 14.1: Cache Redis
  • Lab 14.2: Mensajería con RabbitMQ
  • Lab 14.3: WebSocket real-time

MÓDULO 15 - Proyecto Final​

Duración: 3 sesiones

Contenido:

  • Proyecto completo de principio a fin
  • Aplicación e-commerce o sistema de gestión
  • Integración de todos los conceptos
  • Presentación y code review

Entregables:

  • Aplicación completa funcional
  • Documentación técnica
  • Tests completos
  • Despliegue Docker

MÓDULO 16 - Proyecto E-Contact Backend​

Duración: 3 sesiones

Contenido:

  • Proyecto completo guiado — API REST de formulario de contacto
  • Autenticación y seguridad JWT
  • Base de datos PostgreSQL
  • Integración Frontend
  • Despliegue con GitHub Codespaces

Capítulos:

  • Capítulo 1: Inicio con Codespaces
  • Capítulo 2: Troubleshooting
  • Capítulo 3: Integración Frontend
  • Capítulo 4: Curso Complementario
  • Capítulo 5: Seguridad Avanzada

MÓDULO 17 - Anotaciones Spring Boot (Referencia)​

Contenido:

  • Referencia exhaustiva de todas las anotaciones Spring Boot
  • Anotaciones Core (IoC, DI, Configuración)
  • Anotaciones Web y REST
  • Anotaciones Data/JPA
  • Anotaciones Security, Test y Avanzadas
  • Diccionario A-Z (120+ anotaciones)

Capítulos:

  • Capítulo 1: Anotaciones Core
  • Capítulo 2: Anotaciones Web/REST
  • Capítulo 3: Anotaciones Data/JPA
  • Capítulo 4: Security, Test y Avanzadas
  • Capítulo 5: Diccionario A-Z

MÓDULO 18 - Preguntas de Entrevista​

Contenido:

  • Preparación completa para entrevistas técnicas Java/Spring Boot
  • Preguntas clasificadas por tema y nivel de dificultad
  • Ejercicios de código, algoritmos, refactoring
  • Trampas comunes y conceptos fundamentales

Capítulos:

  • Capítulo 1: JPA & Base de datos (N+1, Lazy/Eager, @Transactional)
  • Capítulo 2: Ejercicios de Refactoring (Guard clauses, Strategy, SRP)
  • Capítulo 3: Algoritmos & Estructuras (HashMap, Stack, Binary Search)
  • Capítulo 4: Diseño REST & Design Patterns (Builder, Singleton, Observer)
  • Capítulo 5: Depuración & Revisión de código
  • Capítulo 6: Trampas Java Fundamentales (== vs .equals(), hashCode, final, static)
  • Capítulo 7: Colecciones Java (List, Map, Set, Stream API)
  • Capítulo 8: ¿Qué es...? (DTO, MVC, CRUD, IoC, ORM, Docker, CI/CD, JWT)

MÓDULO 19 - Repositorios GitHub (Referencias)​

Contenido:

  • Enlaces a todos los repositorios de la formación
  • Repositorio del sitio de documentación (Docusaurus)
  • Repositorio del proyecto e-contact-backend
  • Anexos Security
  • Recursos complementarios

Herramientas y Tecnologías​

Entorno de Desarrollo​

  • IDE: IntelliJ IDEA / Eclipse / VS Code
  • JDK: Java 17 o 21 (LTS)
  • Build Tool: Maven o Gradle
  • Git: Control de versiones

Tecnologías Spring​

  • Spring Boot 3.x
  • Spring MVC
  • Spring Data JPA
  • Spring Security
  • Spring Cloud
  • Spring Boot Actuator

Bases de Datos​

  • H2 (desarrollo)
  • MySQL / PostgreSQL (producción)
  • Redis (cache)

Herramientas Complementarias​

  • Docker y Docker Compose
  • Postman / Insomnia
  • Swagger / OpenAPI
  • Lombok

Competencias Desarrolladas​

Competencias Técnicas​

Desarrollo Backend:

  • Diseño y desarrollo de APIs REST
  • Gestión de la persistencia con JPA/Hibernate
  • Seguridad de aplicaciones web
  • Tests automatizados
  • Despliegue y DevOps

Arquitectura:

  • Patrones de diseño (MVC, Repository, Service Layer)
  • Arquitectura de microservicios
  • Separación de responsabilidades
  • Diseño de APIs RESTful

Buenas Prácticas:

  • Clean Code
  • Principios SOLID
  • Convención sobre Configuración
  • Test-Driven Development (TDD)

Competencias Profesionales​

  • Metodología Ágil
  • Documentación técnica
  • Trabajo en equipo
  • Resolución de problemas
  • Actualización tecnológica

Evaluaciones​

Trabajos Prácticos (50%)​

  • TP1: Aplicación web CRUD simple (10%)
  • TP2: API REST con JPA y seguridad (15%)
  • TP3: Aplicación completa con tests (25%)

Laboratorios (20%)​

  • Labs semanales (15%)
  • Participación y compromiso (5%)

Proyecto Final (30%)​

  • Aplicación completa (20%)
  • Presentación y documentación (10%)

Total: 100%


Prerrequisitos​

Conocimientos Previos​

  • Programación orientada a objetos (POO)
  • Bases de Java
  • Conceptos web (HTTP, HTML, CSS)
  • Bases de datos relacionales (SQL)

Material Requerido​

  • Computadora con mínimo 8 GB RAM (16 GB recomendado)
  • 50 GB de espacio libre en disco
  • Conexión a Internet estable

Software a Instalar​

  • JDK 17 o 21
  • IntelliJ IDEA Community (u otro IDE)
  • MySQL o PostgreSQL
  • Docker Desktop
  • Postman

Recursos del Curso​

Documentación Oficial​

Libros Recomendados​

  • "Spring Boot in Action" - Craig Walls
  • "Pro Spring Boot 2" - Felipe Gutierrez
  • "Spring Microservices in Action" - John Carnell

Comunidad​


Progresión del Curso​

[COMPLETADO] MÓDULO 1  - Introducción a Spring Boot
[COMPLETADO] MÓDULO 2 - Primeros Pasos con Spring Boot
[COMPLETADO] MÓDULO 3 - Arquitectura en Capas y CRUD
[COMPLETADO] MÓDULO 4 - Bases de Datos en Producción
[COMPLETADO] MÓDULO 5 - Spring Core - IoC y DI Avanzado
[COMPLETADO] MÓDULO 6 - Spring Data JPA Avanzado
[COMPLETADO] MÓDULO 7 - Bases de Datos y Transacciones
[COMPLETADO] MÓDULO 8 - Spring Security
[COMPLETADO] MÓDULO 9 - Tests con Spring Boot
[COMPLETADO] MÓDULO 10 - Gestión de Excepciones y Logging
[COMPLETADO] MÓDULO 11 - Spring Boot Actuator y Monitoring
[COMPLETADO] MÓDULO 12 - Despliegue y Producción
[COMPLETADO] MÓDULO 13 - Spring Cloud y Microservicios
[COMPLETADO] MÓDULO 14 - Técnicas Avanzadas
[COMPLETADO] MÓDULO 15 - Proyecto Final
[COMPLETADO] MÓDULO 16 - Proyecto E-Contact Backend
[COMPLETADO] MÓDULO 17 - Anotaciones Spring Boot (Referencia)
[COMPLETADO] MÓDULO 18 - Preguntas de Entrevista
[COMPLETADO] MÓDULO 19 - Repositorios GitHub (Referencias)

¡Comience Ahora!​

Explore los módulos en el menú lateral y comience su aprendizaje de Spring Boot.

¡Buen curso y buen desarrollo!


Última actualización: Marzo 2025