Spring Boot 3Mapa de la guía

🍃 Guía interactiva · API REST real · Aprendizaje por capas

De una idea a un CRUD
con Spring Boot 3

Vas a construir una API de fincas y cultivos entendiendo qué hace cada herramienta, por qué existe cada capa y cómo viaja una petición desde el navegador hasta PostgreSQL.

📦 Preparar el proyecto
🧠

La idea que debes conservar

Una API es un recorrido: cada capa recibe una responsabilidad concreta.

La respuesta vuelve por las mismas capas: base de datos → Repository → Service → Controller → cliente.

📥

Preparar el proyecto de aprendizaje

El código de recursos/codigo-ejemplo/ es la base funcional que ampliarás.

1

Requisitos

  • JDK21 o superior
  • Base de datosPostgreSQL 16+ en el puerto 5434
  • HerramientasGit y PowerShell 7+

La guía web funciona sin backend.

2

Descargar y abrir

Descarga el ZIP, descomprímelo y abre la carpeta en Antigravity o VS Code. El proyecto ya incluye Maven Wrapper.

📦 Descargar código base
3

Configurar y ejecutar

Crea .env desde .env.example y ejecuta la API con DevTools.

Comandos para comprobar la teoría

Ejecuta CRUD, validación 400, recurso 404, regla 422 y relación N:M en este orden.

💻

IDE Workflow: construir con herramientas reales

Completa esta sección antes de programar. Debes terminar con la aplicación ejecutándose, un breakpoint activo y hot-reload comprobado.

Cargando pasos...
Cargando pasos...

FAQ de aprendizaje

Cuando algo falle, usa el mensaje para decidir dónde investigar.

HOT-RELOAD no funciona

La causa más común es que el auto-build del IDE esté apagado. DevTools no detecta un archivo .java suelto: el IDE debe compilarlo a .class. En VS Code usa Ctrl+Shift+P → Java: Build Automatically → ON; luego revisa “Restarting due to changed file...” y “LiveReload server is running on port 35729”.

La API responde 401 al probar CRUD

En desarrollo el proyecto usa app.security.enabled=false. Si activaste producción, necesitas enviar un JWT válido; revisa M10 antes de cambiar la cadena de seguridad.

¿Por qué hay advertencias amarillas de "Null type safety" / "Missing non-null annotation"?

No es un error de compilación. Se debe a la rigurosa configuración de seguridad de nulos (Null-Safety) de Spring Boot 3 chocando con el compilador interno de VS Code / Eclipse (JDT). El framework declara que no acepta nulos por defecto en sus APIs, y tu editor te advierte porque tus variables no están explícitamente anotadas con @NonNull. Puedes ignorarlas de forma segura, o desactivarlas creando el archivo .vscode/settings.json en tu proyecto base con el valor: { "java.compile.nullAnalysis.mode": "disabled" }.

¿Empiezo por Controller o por Entity?

Diseña primero el recurso y su contrato JSON; después crea Entity, DTOs, Repository, Service y Controller. M8 muestra el orden completo.

🗺️

Tutorial paso a paso

Avanza solo cuando puedas explicar la decisión y verificarla en tu proyecto.