Proyecto Spring Boot con Spring Initializr

Clase 10 de 31Curso de Java: Backend con Spring Boot

Contenido del curso

JPA con Spring y Spring Data

Resumen

Configurar correctamente un proyecto desde cero es el primer paso para trabajar de forma profesional con Spring Boot. Conocer las herramientas que ofrece el ecosistema, desde el generador de proyectos hasta la estructura de carpetas basada en estereotipos, permite arrancar con una base sólida y organizada.

¿Cómo generar un proyecto con Spring Initializr?

Spring Initializr es la herramienta oficial para crear proyectos con Spring Boot de forma rápida [0:10]. Se accede desde el navegador y permite configurar los aspectos fundamentales del proyecto antes de descargarlo.

Al ingresar, se seleccionan las opciones principales:

  • Gestor de dependencias: Maven es la opción utilizada, aunque también se puede elegir Gradle [0:26].
  • Lenguaje de programación: Java viene seleccionado por defecto.
  • Versión de Spring Boot: se recomienda la versión estable más reciente, en este caso la 2.4.5 [0:38].
  • Metadatos del proyecto: se personalizan campos como el nombre (Fundamentos), el artifact y la descripción [0:46].
  • Versión de Java: se selecciona Java 11 [1:04].

Una vez configurado, se da clic en Generar y se descarga un archivo comprimido con toda la estructura del proyecto lista para abrir en un IDE.

¿Qué estructura trae un proyecto de Spring Boot recién creado?

Al abrir el proyecto en IntelliJ IDEA [1:22], se puede explorar la estructura generada automáticamente por el inicializador.

¿Cuál es el punto de entrada de la aplicación?

Dentro de la carpeta src/main/java se encuentra la clase principal llamada FundamentosApplication [2:04]. Esta clase está marcada con la anotación @SpringBootApplication, que es la responsable de activar toda la autoconfiguración del proyecto. Contiene el método main, como cualquier aplicación Java estándar, y desde allí se inicializa toda la arquitectura de Spring Boot.

¿Qué otros archivos importantes incluye?

  • application.properties: ubicado en la carpeta resources, es el archivo donde se definen todas las propiedades y configuraciones de la aplicación [2:24].
  • Carpeta test: contiene las clases para ejecutar pruebas unitarias del proyecto [2:36].
  • .gitignore: generado automáticamente, ignora archivos innecesarios de entornos como IntelliJ, NetBeans o Spring Tool Suite [2:50].
  • pom.xml: el archivo central de Maven donde se gestionan las dependencias del proyecto [3:10]. Al inicio, incluye dos dependencias principales: el starter de Spring Boot y el starter de pruebas. También contiene la sección parent, que referencia al proyecto padre de Spring Boot.

El archivo pom.xml resulta fundamental porque allí se agregan todas las librerías necesarias y se configuran plugins adicionales para el ciclo de vida del proyecto.

¿Cómo organizar el proyecto bajo la arquitectura de dependencias?

Antes de empezar a codificar, es necesario subir el proyecto a un repositorio en GitHub [3:52]. Desde la terminal de IntelliJ se ejecutan los comandos de Git para inicializar el repositorio, agregar los archivos, crear el primer commit y hacer push [4:18].

Con el repositorio listo, se crean las carpetas que representan los estereotipos principales de Spring Boot [5:00]:

  • Component: el estereotipo más genérico para registrar un bean en el contenedor de Spring.
  • Service: orientado a la lógica de negocio.
  • Repository: dedicado al acceso a datos y persistencia.
  • Controller: encargado de gestionar las peticiones HTTP.

Estas cuatro carpetas conforman la arquitectura de dependencias que Spring Boot utiliza para organizar y resolver la inyección de dependencias de forma automática. Cada una corresponde a una anotación específica que le indica al framework cómo debe tratar cada clase.

Esta estructura permite que el código sea escalable, fácil de mantener y siga las buenas prácticas del desarrollo con Spring. Si ya tienes tu proyecto configurado, el siguiente paso natural es aprender a crear e inyectar tu primera dependencia de tipo Component. ¿Qué estereotipo crees que usarás con más frecuencia en tus proyectos? Comparte tu opinión en los comentarios.