En este artículo, iniciamos su incursión en el mundo del desarrollo optimizado de aplicaciones web Java. Spring Boot permite abstraernos de las complejidades en la configuración de Spring Framework, lo que le permite enfocarse rápidamente en la elaboración de su lógica de negocio sin verse atascado en tareas de configuración exhaustivas. Además, la versatilidad de Spring Boot se extiende a la creación sin esfuerzo de aplicaciones web con servidores integrados como Tomcat, amplificando sus capacidades de desarrollo. El presente artículo abarca la creación de una aplicación Spring Boot elemental.
Configurar un proyecto Spring Boot usando Spring Initializr
Spring Initializr es la herramienta web desarrollada por el equipo de spring.io diseñada para agilizar la generación de proyectos Spring Boot. Permite a los desarrolladores organizar la creación de proyectos Spring Boot personalizados mediante la selección de dependencias y configuraciones de proyecto específicas.
La página web de Spring Initializr proporciona una interfaz completa que permite la configuración precisa de herramientas de compilación, versiones de Java y dependencias del proyecto con facilidad.
Una vez configurados los parámetros, hacer clic en el botón «GENERAR» (o pulsar las teclas CTRL + ENTER) para iniciar el proceso de generación del proyecto, que se descargará automáticamente como un archivo zip.
Descomprimir el archivo obtenido e importar el proyecto en el IDE de su preferencia.
Estructura del proyecto
El proyecto generado por la herramienta Spring Initializr tiene la siguiente estructura:
HelloWorldApplication.java
La clase HelloWorldApplication, es el componente fundamental de la aplicación Spring Boot.
package com.jcodepoint.helloworld;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class HelloWorldApplication {
public static void main(String[] args) {
SpringApplication.run(HelloWorldApplication.class, args);
}
}
La anotación @SpringBootApplication sirve como punto de entrada para la aplicación, consolidando configuraciones esenciales y habilitando las capacidades de configuración automática de Spring Boot. El método main, denominado public static void main(String[] args), inicializa la aplicación invocando SpringApplication.run(HelloWorldApplication.class, args), lo que desencadena el proceso de arranque. Esta clase encapsula la funcionalidad principal necesaria para iniciar la aplicación Spring Boot, mostrando la integración perfecta y la configuración optimizada facilitada por Spring Boot.
HelloWorldApplicationTests.java
La clase HelloWorldApplicationTests es un componente integral de la aplicación Spring Boot, anotada con @SpringBootTest.
package com.jcodepoint.helloworld;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;
@SpringBootTest
class HelloWorldApplicationTests {
@Test
void contextLoads() {
}
}
Esta clase está diseñada con fines de prueba, lo que garantiza que el contexto de la aplicación se cargue correctamente. El método contextLoads(), anotado con @Test, sirve como marcador de posición para probar la inicialización del contexto de la aplicación. Al utilizar la anotación @SpringBootTest, esta clase facilita las pruebas de integración del contexto de la aplicación Spring, validando su configuración y funcionalidad adecuadas. Esta clase de prueba ejemplifica las sólidas capacidades de prueba y la perfecta integración que ofrece Spring Boot para garantizar la confiabilidad e integridad de las aplicaciones.
pom.xml
El archivo Maven pom xml, contiene varios detalles relacionados con Spring Boot. En particular, hereda de spring-boot-starter-parent como padre, aprovechando sus configuraciones y dependencias predefinidas. Los elementos groupId, artifactId y version definen las coordenadas del proyecto, mientras que description proporciona una breve descripción. La sección properties especifica la versión de Java y la sección dependencies incluye spring-boot-starter-web para funcionalidad relacionada con la web y spring-boot-starter-test para pruebas. Además, la sección build incorpora el spring-boot-maven-plugin para una integración perfecta con Maven. Esta configuración ejemplifica la configuración optimizada y la gestión de dependencias facilitadas por Spring Boot para un desarrollo y prueba de aplicaciones eficientes.
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>3.2.2</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.jcodepoint</groupId>
<artifactId>hello-world</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>hello-world</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>17</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
Agregando nuevos componentes
Hasta ahora solamente implementamos los aspectos básicos de la aplicación que permiten su funcionamiento, pero queremos agregar algo de lógica que tenga alguna utilidad para los usuarios de la aplicación. En este caso implementaremos un simple servicio REST que retorna un mensaje. Para lograr esto, se crea una nueva clase llamada SampleController.
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class SampleController {
@GetMapping("hello")
String hello() {
return "Hello, Spring Boot!";
}
}
Compilar y ejecutar la aplicación
Para ejecutar la aplicación desde la línea de comandos ejecutamos:
$
$ mvn spring-boot:run
$
Una vez iniciada la aplicación podemos acceder al servicio, obteniendo el mensaje esperado:
Conclusión
En este artículo hemos visto una descripción general de la creación de una aplicación Spring Boot básica, cubriendo aspectos esenciales desde la configuración del proyecto usando Spring Initializr pasando por la comprensión de la estructura del proyecto, agregando nuevos componentes y, finalmente, compilando y ejecutando la aplicación. Con esto, el lector dispone de la información fundamental sobre el proceso de configurar un proyecto Spring Boot y ampliar su funcionalidad.
Te puede interesar
Introducción a Spring Boot
Este artículo es una introducción a Spring Boot en el que haremos un repaso de sus características más importantes.
Spring Boot Starter Parent
Spring Boot Starter Parent es parte del framework Spring Boot. Permite administrar dependencias y propiedades dentro de un proyecto.