Prompt:
1. Actua como mi asistente personal de estudios en Alura.
2. Estoy interesada en la programación web y quiero aprender sobre el framework de Sprint Boot, dispongo de 2 horas diarias entre semana.
3. Dame una guia de estudio, que incluya cuestionarios y ejercicios practicos
Resultado:
**Plan de Estudio Semanal**
Este plan está diseñado para cubrir los fundamentos de Spring Boot a lo largo de 4 semanas. Puedes adaptar los temas según tu ritmo.
**Semana 1: Fundamentos de Java y Conceptos Básicos**
* Lunes: Repaso de Java básico (clases, objetos, herencia).
* Martes: Introducción a la Inversión de Control (IoC) y la Inyección de Dependencias.
* Miércoles: Entendiendo el Contenedor de IoC de Spring.
* Jueves: ¿Qué es Spring Boot? Ventajas y cómo simplifica el desarrollo.
* Viernes: Creación de tu primer proyecto "Hola Mundo" con Spring Initializr.
**Semana 2: Desarrollo Web con Spring Boot**
* Lunes: Uso de la anotación @RestController.
* Martes: Creación de endpoints REST.
* Miércoles: Mapeo de solicitudes HTTP (@GetMapping, @PostMapping, etc.).
* Jueves: Manejo de datos de la solicitud (@RequestParam, @PathVariable, @RequestBody).
* Viernes: Estructura de directorios de un proyecto Spring Boot.
**Semana 3: Persistencia de Datos**
* Lunes: Introducción a Spring Data JPA y el concepto de ORM.
* Martes: Creación de entidades (@Entity).
* Miércoles: Definición de repositorios (JpaRepository).
* Jueves: Realización de operaciones CRUD (Crear, Leer, Actualizar, Eliminar).
* Viernes: Configuración de una base de datos en memoria (H2) para pruebas.
**Semana 4: Configuración y Pruebas**
* Lunes: Uso del archivo application.properties o application.yml.
* Martes: Creación de configuraciones personalizadas (@Configuration).
* Miércoles: Introducción a las pruebas unitarias con JUnit y Mockito.
* Jueves: Creación de pruebas de integración para un endpoint REST.
* Viernes: Despliegue de tu aplicación.
**Cuestionario: Evalúa tu Conocimiento**
Aquí hay un breve cuestionario para que pongas a prueba tus conocimientos sobre los conceptos clave de Spring Boot.
1. ¿Cuál es la función principal de Spring Initializr?
2. ¿Qué problema resuelve la Inyección de Dependencias en Spring?
3. Explica la diferencia entre @Controller y @RestController.
4. ¿Qué es un repositorio en Spring Data JPA y cuál es su utilidad?
5. ¿Para qué se utilizan las anotaciones @GetMapping y @PostMapping?