MÓDULO 2 - Primeros Pasos con Spring Boot
Objetivos del Módulo
Este módulo le permitirá:
- Dominar el uso de Spring Initializr para crear proyectos
- Comprender la estructura de un proyecto Spring Boot
- Configurar su entorno de desarrollo (Visual Studio Code)
- Crear su primera aplicación REST
- Utilizar las anotaciones básicas de Spring Boot
Contenido del Módulo
Teoría
Capítulo 1: Spring Initializr
- Qué es Spring Initializr
- Configuración del proyecto (Maven, Java, Spring Boot)
- Metadatos y parámetros
- Gestión de dependencias y starters
- Generación e importación del proyecto
- Alternativas (CLI, API, IDE)
Capítulo 2: Estructura de un Proyecto Spring Boot
- Estructura completa de un proyecto
- Rol del archivo pom.xml
- Organización de los paquetes (Controller, Service, Repository, Model)
- Directorios resources (static, templates)
- Configuración con application.properties/yml
- Convenciones de nomenclatura
Capítulo 3: Configuración
- Archivos application.properties y application.yml
- Propiedades comunes de Spring Boot
- Configuración de la base de datos
- Configuración de logs
- Propiedades personalizadas con @Value y @ConfigurationProperties
- Gestión de perfiles (dev, test, prod)
- Variables de entorno y seguridad
Capítulo 4: Anotaciones Básicas
@SpringBootApplicationy sus componentes- Anotaciones de estereotipo:
@Component,@Service,@Repository @RestControllervs@Controller- Anotaciones de mapeo HTTP:
@GetMapping,@PostMapping,@PutMapping,@DeleteMapping @RequestParam,@PathVariable,@RequestBody- Inyección de dependencias con
@Autowired
Capítulo 5: Introducción a los Repositories
- Qué es un Repository de Spring Data JPA
- Los 4 métodos básicos heredados de JpaRepository
- Convenciones de nomenclatura simples: findBy, And, Or
- Crear una entidad JPA
- Arquitectura completa Controller → Service → Repository
- Ejemplos prácticos con la entidad User
- Nota: Contenido simplificado para principiantes. Los conceptos avanzados (joins, JPQL, @Query) se verán en el Módulo 6
Prácticas
TP2.1: Aplicación Greeting con VS Code
Objetivo: Crear su primera aplicación Spring Boot REST
Contenido:
- Configuración de Spring Initializr
- Importación del proyecto en Visual Studio Code
- Creación de un controlador REST simple
- Prueba y depuración
- Resolución de problemas comunes
Duración estimada: 2-3 horas
Prerrequisitos: JDK 17+, Maven, VS Code con extensiones Java
Nivel: Principiante
TP2.2: Base de Datos H2 - Memoria y Persistencia
Objetivo: Dominar H2 en modo memoria y en modo archivo persistente
Contenido:
- Parte 1: H2 en memoria (datos temporales)
- Parte 2: H2 persistente (datos en disco)
- Parte 3: Gestión avanzada con cambio de nombre de archivos
- Diferencias entre los modos
- Configuración de schema.sql y data.sql
- Consola H2
- 4 ejercicios prácticos
- Uso de los 4 métodos básicos de JPA (findById, findAll, save, deleteById)
Duración estimada: 3-4 horas
Prerrequisitos: TP2.1 completado, Capítulo 5 (Repositories) leído
Nivel: Principiante
📚 Nota Importante: Reestructuración Pedagógica
¿Dónde están TP3 y TP4?
Si está buscando las prácticas avanzadas, han sido trasladadas a los módulos apropiados para una mejor progresión pedagógica:
TP3.1: Arquitectura CRUD → MÓDULO 3
- Nuevo nombre: TP3.1 del Módulo 3
- Razón: Utiliza conceptos avanzados (Validación, ResponseEntity, Gestión de errores)
- Prerrequisitos añadidos:
- Capítulo 1: Service Layer en detalle
- Capítulo 2: Validación de datos
- Capítulo 3: Gestión de errores HTTP
- Capítulo 4: Arquitectura profesional de 3 capas
TP4.1: PostgreSQL → MÓDULO 4
- Nuevo nombre: TP4.1 del Módulo 4
- Razón: Utiliza conceptos de producción (PostgreSQL, Lombok, Jakarta, estrategias DDL)
- Prerrequisitos añadidos:
- Capítulo 1: PostgreSQL - Instalación y configuración
- Capítulo 2: Jakarta vs Javax Persistence
- Capítulo 3: Hibernate y estrategias DDL
- Capítulo 4: Lombok
¿Por qué este cambio?
Análisis pedagógico:
TP3 (anteriormente aquí): 60% de conceptos no enseñados
TP4 (anteriormente aquí): 80% de conceptos no enseñados
Impacto positivo:
- ✅ Cada práctica ahora tiene TODA la teoría necesaria ANTES de comenzarla
- ✅ Menos frustración y confusión
- ✅ Aprendizaje más progresivo y eficaz
- ✅ Mejor preparación para producción
Progresión Recomendada
MÓDULO 2 (Bases)
├── 5 Capítulos teóricos
└── 2 Prácticas (TP2.1, TP2.2)
↓
MÓDULO 3 (Arquitectura Robusta)
├── 4 Capítulos teóricos
└── 1 Práctica (Arquitectura CRUD) ← Antiguo TP3 del Módulo 2
↓
MÓDULO 4 (Producción)
├── 4 Capítulos teóricos
└── 1 Práctica (PostgreSQL) ← Antiguo TP4 del Módulo 2
Prerrequisitos Técnicos
Antes de comenzar este módulo, asegúrese de tener:
Software Requerido
-
JDK 17 o superior
- Descarga: Oracle JDK o OpenJDK
-
Visual Studio Code
- Descarga: code.visualstudio.com
-
Extensiones para VS Code:
- Extension Pack for Java (Microsoft)
- Spring Boot Extension Pack (VMware)
- Maven for Java (Microsoft)
-
Maven 3.9+
- Consulte la TP1.2 : Instalación de Maven 3.9.x para una guía completa de instalación en Windows, macOS y Linux
- Si Java aún no está instalado, consulte primero la TP1.1 : Instalación de Java JDK 17
- Se recomienda la versión 3.9+ para estabilidad con Java 17+
Verificación de la Instalación
# Verificar Java
java -version
# Verificar Maven
mvn -version
Duración Estimada
Teoría: 6-8 horas (5 capítulos)
Práctica: 5-7 horas (TP2.1, TP2.2)
Total: 11-15 horas (2-3 sesiones de 4-6 horas)
Nota: El Módulo 2 ha sido simplificado para centrarse en los fundamentos. Las prácticas avanzadas (Arquitectura CRUD, PostgreSQL) ahora están en los Módulos 3 y 4 con la teoría correspondiente.
Recursos Adicionales
Documentación Oficial
Tutoriales Recomendados
Criterios de Éxito
Al finalizar este módulo, usted debería ser capaz de:
- ✅ Crear un proyecto Spring Boot con Spring Initializr
- ✅ Configurar Visual Studio Code para desarrollo Java/Spring
- ✅ Crear y probar un controlador REST simple
- ✅ Comprender la estructura de un proyecto Spring Boot
- ✅ Configurar application.properties y application.yml
- ✅ Utilizar las anotaciones básicas (@RestController, @Service, @Repository)
- ✅ Crear entidades JPA simples
- ✅ Utilizar los 4 métodos CRUD básicos (findById, findAll, save, deleteById)
- ✅ Crear métodos de búsqueda simples (findBy, And, Or)
- ✅ Trabajar con H2 en modo memoria y persistente
Lo que aún NO se espera que domine (esto está en los siguientes módulos):
- ❌ Arquitectura completa de 3 capas (Módulo 3)
- ❌ Validación avanzada (Módulo 3)
- ❌ Gestión de errores HTTP (Módulo 3)
- ❌ PostgreSQL en producción (Módulo 4)
- ❌ Lombok (Módulo 4)
- ❌ Joins JPA (Módulo 6)
Próximos Pasos
Una vez completado este módulo, estará listo para:
-
Módulo 3: Arquitectura en Capas y CRUD Completo
- Service Layer en profundidad
- Validación de datos (@Valid, @NotNull, @Size, etc.)
- Gestión de errores HTTP (ResponseEntity, códigos de estado)
- Arquitectura profesional de 3 capas
- TP3.1: Arquitectura CRUD (trasladado para mejor progresión)
-
Módulo 4: Bases de Datos en Producción
- PostgreSQL - Instalación y configuración
- Jakarta vs Javax Persistence
- Hibernate y estrategias DDL
- Lombok para reducir el código
- TP4.1: Migración PostgreSQL (trasladado para mejor progresión)
-
Módulo 5: Spring Core - IoC y DI avanzado
-
Módulo 6: Spring Data JPA Avanzado (Joins, JPQL, Optimización)
📚 ¿Por qué esta reorganización?
Estructura anterior:
- El Módulo 2 contenía 4 prácticas, de las cuales 2 eran demasiado avanzadas
- TP3.1 y TP4.1 utilizaban conceptos no enseñados
- Frustración de los estudiantes
Nueva estructura:
- ✅ Módulo 2: Solo fundamentos (TP2.1, TP2.2)
- ✅ Módulo 3: CRUD con teoría completa (TP3.1)
- ✅ Módulo 4: Producción con teoría completa (TP4.1)
💡 Resultado: ¡Cada práctica ahora tiene TODA la teoría necesaria ANTES de comenzarla!