Creación de Aplicaciones Autocontenidas con SpringBoot

Clase 6 de 35Curso de Java Spring

Contenido del curso

Spring Data

Construyendo nuestra API

Resumen

Crear aplicaciones web modernas requiere herramientas que simplifiquen la configuración y permitan enfocarse en lo que realmente importa: escribir código de calidad. Spring Boot ofrece exactamente eso, y entender cómo funciona una aplicación autocontenida es el primer paso para construir servicios robustos y mantenibles.

¿Qué es una aplicación autocontenida y por qué importa?

Las aplicaciones web empresariales tradicionales dependían de un único servidor de aplicaciones centralizado, donde se alojaban múltiples aplicaciones junto con su configuración de bases de datos, servicios externos y variables [01:00]. Todas las aplicaciones compartían ese mismo servidor.

Las arquitecturas modernas proponen un enfoque diferente: pequeñas aplicaciones o servicios que interactúan entre sí en lugar de una sola aplicación monolítica [01:24]. Cada aplicación contiene internamente su propio servidor con una configuración totalmente independiente. Esto facilita tanto el desarrollo como el mantenimiento.

Spring Boot hace posible este modelo al ser el proyecto de Spring diseñado para crear aplicaciones autocontenidas [01:50]. Permite delegar tareas como la configuración de dependencias y el despliegue a un servidor, para que el desarrollador se concentre exclusivamente en programar.

¿Cómo funciona el servidor embebido de Spring Boot?

Spring Boot utiliza un contenedor de aplicaciones embebido que viene incluido dentro del propio proyecto [02:12]. Por defecto trabaja con Apache Tomcat, aunque también soporta Jetty y Undertow. Esto elimina la necesidad de instalar y configurar un servidor externo.

Además del servidor embebido, Spring Boot provee un gestor de dependencias compatible con Maven o Gradle, configuraciones automáticas y herramientas adicionales para personalizar la aplicación según las necesidades del proyecto [02:30].

¿Cómo crear un proyecto con Spring Initializr?

Spring Initializr es el sitio oficial disponible en start.spring.io para generar aplicaciones autocontenidas con Spring Boot [02:50]. Con pocos clics se obtiene un proyecto listo para comenzar a trabajar.

Estos son los pasos para configurar el proyecto [03:10]:

  • Seleccionar el tipo de proyecto: Maven gestiona dependencias con archivos XML, mientras que Gradle utiliza Groovy y permite crear tareas para despliegue e integración continua.
  • Elegir el lenguaje: Spring soporta Java, Groovy y Kotlin.
  • Definir la versión estable de Spring Boot, que siempre es la opción recomendada.
  • Completar los metadata del proyecto: grupo, artefacto, nombre, descripción y package name.
  • Seleccionar el empaquetamiento en JAR y la versión de Java.
  • Agregar dependencias, como Spring Web, que permite crear APIs REST usando Tomcat como contenedor por defecto [04:48].

Al dar clic en Generate, se descarga un archivo .zip con toda la estructura necesaria para que la aplicación funcione correctamente.

¿Qué archivos genera Spring Initializr?

Al explorar el proyecto generado se encuentran archivos importantes [05:15]:

  • .gitignore: útil para subir el código a un repositorio de control de versiones.
  • build.gradle: escrito en Groovy, contiene la configuración completa de la aplicación, incluyendo plugins, grupo, versión de Java, repositorios, dependencias y configuración de pruebas [05:35].
  • Carpetas y archivos de Gradle (gradlew, gradlew.bat, settings.gradle): necesarios para que Gradle funcione, pero no requieren intervención directa.

Dentro de la carpeta src se encuentran dos subcarpetas principales [06:15]:

  • main: contiene java con las clases del proyecto y resources con archivos de configuración.
  • test: destinada a las pruebas.

En la carpeta java ya existe una clase principal llamada PlatziMarketApplication, que contiene el método main, encargado de ejecutar la aplicación [06:40]. Esta clase incluye la anotación @SpringBootApplication, que le indica a Spring que es la clase que gestiona toda la aplicación.

Dentro de resources se encuentra el archivo application.properties [07:00], donde se configuran variables del proyecto, ya sean las documentadas oficialmente por Spring o variables personalizadas definidas por el desarrollador.

Si quieres profundizar en la configuración de este archivo o en cómo abrir el proyecto en un IDE como IntelliJ IDEA, comparte tu experiencia creando tu primer proyecto con Spring Initializr.