Boost Academy
FormaciónEvaluacionesPerfil
Volver
  • En directo

Spring Boot — Intermedio

8h de clase en directo·HACK A BOSS·Español

Skills que aprenderás

  • Spring Boot

Convocatorias

Necesitas un plan activo

Para acceder a los cursos en directo necesitas un plan activo. Estamos trabajando para que los planes estén disponibles pronto — ¡mantente atento!

No hay convocatorias abiertas ahora mismo, pero no te pierdas la oportunidad: guarda este curso y te avisamos en cuanto se abra una convocatoria.

Descripción

Objetivos

Temario

Requisitos técnicos

Conocimientos previos

Detalles de la convocatoria

Recursos

No hay recursos disponibles todavía para esta convocatoria

Dirigido a desarrolladores con experiencia previa en Spring Boot a nivel iniciación, este curso profundiza en la construcción de APIs REST robustas y listas para entornos reales. A lo largo de ocho horas, el participante aprenderá a estructurar correctamente una aplicación en capas, a gestionar la persistencia con Spring Data JPA incluyendo relaciones entre entidades, a proteger endpoints mediante autenticación JWT con Spring Security, y a garantizar la calidad del código mediante tests de integración. Al finalizar, el participante será capaz de entregar una API REST funcional, segura, con manejo de errores coherente y configuración externalizada por entorno, siguiendo criterios de diseño justificados y verificables mediante pruebas automatizadas.

  1. Reconocer los principios de la arquitectura en capas de una API REST y la razón de separar responsabilidades entre controlador, servicio y repositorio ante distintos requisitos funcionales.
  2. Explicar cuándo y por qué utilizar DTOs en lugar de exponer directamente entidades JPA, relacionando la decisión con las implicaciones de seguridad, acoplamiento y evolución del contrato de la API.
  3. Diseñar la estructura de persistencia de un dominio con al menos dos entidades relacionadas, definiendo entidades JPA, sus asociaciones y los repositorios necesarios para cubrir las consultas del dominio.
  4. Construir un mecanismo de manejo global de excepciones que devuelva respuestas de error estructuradas con códigos HTTP semánticamente correctos para múltiples escenarios de fallo.
  5. Implementar autenticación basada en JWT configurando Spring Security para distinguir rutas públicas de endpoints protegidos por rol.
  6. Adaptar la configuración de la aplicación a distintos entornos mediante perfiles de Spring y propiedades externalizadas, eliminando valores sensibles del código fuente.
  7. Diagnosticar y corregir fallos relacionados con el contexto de Spring —beans no encontrados, dependencias circulares o proxies mal configurados— identificando la causa raíz de forma sistemática.
  8. Elaborar tests de integración con @SpringBootTest y MockMvc que validen flujos felices y de error en los endpoints críticos de la API.

Arquitectura en capas y modelado del dominio. El curso abre con el diseño deliberado de una API REST organizada en controlador, servicio y repositorio. Se estudian las responsabilidades de cada capa, los criterios para distribuir la lógica de negocio y cómo formalizar las relaciones entre entidades con Spring Data JPA, incluyendo las anotaciones @OneToMany y @ManyToOne y la configuración de los repositorios derivados que el dominio requiere.

Contrato de la API: DTOs y manejo de errores. A continuación se aborda el diseño del contrato externo de la API. Se comparan los enfoques de exponer entidades JPA directamente frente a introducir objetos de transferencia de datos, evaluando las implicaciones de cada decisión en términos de acoplamiento, seguridad y mantenibilidad. Se implementa el patrón seleccionado en un flujo completo de entrada y salida. Paralelamente, se construye un mecanismo centralizado de manejo de excepciones con @ControllerAdvice que produce respuestas de error uniformes y códigos HTTP semánticamente adecuados para los casos más habituales de fallo.

Seguridad con Spring Security y JWT. El bloque de seguridad cubre la integración de autenticación basada en tokens JWT sobre una API existente. Se configura Spring Security para proteger endpoints según el rol del usuario, se declaran las rutas públicas necesarias y se analiza el ciclo de vida del token dentro del filtro de seguridad.

Configuración por entorno y diagnóstico del contexto de Spring. Se trabaja la externalización de la configuración mediante perfiles de Spring, separando las propiedades de desarrollo, test y producción local sin hardcodear valores sensibles. Acto seguido, se practica la depuración de problemas habituales del contenedor de Spring: beans no encontrados, dependencias circulares y proxies mal configurados, siguiendo una metodología de identificación de causa raíz.

Tests de integración. El curso cierra con la escritura de tests de integración usando @SpringBootTest y MockMvc. Se diseñan casos que cubren el flujo feliz y al menos un flujo de error por cada endpoint crítico, consolidando las decisiones de diseño tomadas a lo largo del curso mediante verificación automatizada.

  • JDK: Java 17 o superior instalado y configurado en la variable de entorno JAVA_HOME.
  • IDE: IntelliJ IDEA (Community o Ultimate) o Eclipse con Spring Tools Suite; se recomienda IntelliJ.
  • Gestión de dependencias: Maven 3.8+ o Gradle 8+ (el proyecto del curso usa Maven por defecto).
  • Base de datos: PostgreSQL 15+ instalado localmente, o Docker con la imagen oficial postgres:15 para ejecutar el contenedor de base de datos del ejercicio.
  • Docker (opcional pero recomendado): Docker Desktop para levantar PostgreSQL y ejecutar el entorno de test sin instalación local.
  • Herramienta de pruebas HTTP: Postman, Insomnia o la extensión REST Client de VS Code para probar los endpoints durante los ejercicios.
  • Git: cliente Git instalado para clonar el repositorio de ejercicios del curso.
  • Conectividad: acceso a Internet para descargar dependencias de Maven Central durante la primera ejecución del proyecto.

Para aprovechar este curso el participante debe haber completado SPB01 — Spring Boot Iniciación o contar con un conocimiento equivalente que incluya: creación de proyectos con Spring Initializr, fundamentos de inyección de dependencias y el contenedor IoC de Spring, construcción de endpoints REST básicos con @RestController y @RequestMapping, y familiaridad con los conceptos de beans, anotaciones de estereotipo (@Service, @Repository, @Component) y gestión de dependencias con Maven o Gradle. Se recomienda asimismo soltura con Java 17+ (lambdas, streams y generics) y experiencia básica con SQL relacional.