CodeGym /Cursos /Módulo 5. Spring /Creación y ejecución de aplicaciones Spring Boot

Creación y ejecución de aplicaciones Spring Boot

Módulo 5. Spring
Nivel 4 , Lección 6
Disponible

Spring Boot hace que crear aplicaciones sea rápido y agradable. En lugar de dedicar mucho tiempo a configurar, podemos ponernos a programar de inmediato. Vamos a ver cómo funciona.

1. Proceso de creación de la aplicación

Nuestro viaje empieza creando el proyecto. Como un buen artesano elige las herramientas adecuadas para el trabajo, nosotros también elegiremos las herramientas correctas para nuestra aplicación Spring Boot. El gran ayudante aquí es Spring Initializr, que se encargará de toda la rutina de configuración del proyecto.

Paso 1. Usamos Spring Initializr

Spring Initializr es una herramienta que permite configurar un proyecto muy fácilmente: solo tienes que rellenar un formulario. Puedes abrir https://start.spring.io/ y elegir los siguientes parámetros para nuestro proyecto:

  1. Tipo de proyecto: Maven o Gradle (elegimos Maven para que sea más sencillo).
  2. Lenguaje: Java.
  3. Versión de Spring Boot: la versión estable más reciente (por ejemplo, 3.0.0).
  4. Artifact: hello-world-app.
  5. Dependencias:
    • Spring Web (para crear REST API),
    • Spring Boot DevTools (para recarga automática).

Haz clic en el botón "Generate" y descarga el archivo. Descomprímelo en un lugar cómodo y ábrelo en tu IDE favorito (por ejemplo, IntelliJ IDEA o Eclipse).

Dato curioso:

Spring Initializr a menudo se llama "botón mágico", porque realmente nos libra de la rutina. ¡Un botón y ya tienes el proyecto listo!


Paso 2. Echamos un vistazo al proyecto

Abre el proyecto y verás la estructura estándar de una aplicación Spring Boot:


src/main/java
 └── com.example.helloworldapp
      └── HelloWorldAppApplication.java
src/main/resources
 ├── application.properties
 └── static/ (para archivos estáticos, por ejemplo, CSS y JS)

El archivo clave es HelloWorldAppApplication.java. Contiene el punto de entrada de tu aplicación:


package com.example.helloworldapp;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class HelloWorldAppApplication {
    public static void main(String[] args) {
        SpringApplication.run(HelloWorldAppApplication.class, args);
    }
}

La anotación @SpringBootApplication combina tres anotaciones: @Configuration, @EnableAutoConfiguration y @ComponentScan. Le indica a Spring Boot: "¡Eh, esto es una aplicación, haz toda la magia por mí!"


2. Escribir un controlador REST sencillo

Ahora añadamos algo de funcionalidad. Creamos un controlador REST que responda a peticiones con un mensaje de bienvenida. En el directorio src/main/java/com/example/helloworldapp crea una nueva clase HelloController.

Se ve así:


package com.example.helloworldapp;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class HelloController {

    @GetMapping("/hello")
    public String sayHello() {
        return "¡Hola, Spring Boot!";
    }
}

Aquí empieza la magia. La anotación @RestController le dice a Spring que esta clase manejará peticiones HTTP. Y la anotación @GetMapping("/hello") indica que el método sayHello() debe invocarse cuando el usuario haga un GET a la ruta /hello.


¿Cómo funciona esto?

Spring Boot configura automáticamente todos los componentes básicos. Solo tienes que marcar la clase con @RestController y Spring Boot hace el trabajo sucio: levanta el servidor web, configura el manejo de peticiones HTTP, conecta la conversión a JSON. Cuando llega una petición a /hello, toda esa infraestructura previamente configurada simplemente hace su trabajo — ni necesitas pensar en poner en marcha Tomcat o configurar la serialización.

3. Ejecutamos la aplicación

Ahora que tenemos el controlador, es hora de ejecutar la aplicación. Para ello abre la clase HelloWorldAppApplication y pulsa "Run" en tu IDE. Deberías ver en la consola algo como:


Tomcat started on port(s): 8080 (http)
Started HelloWorldAppApplication in 2.345 seconds (JVM running for 2.678)

Eso significa que el servidor embebido Tomcat está en marcha y nuestra aplicación lista para recibir peticiones.


¿Cómo comprobarlo?

Abre el navegador o una herramienta como Postman y escribe la URL: http://localhost:8080/hello. Verás:


¡Hola, Spring Boot!

¡Enhorabuena! Este es tu primer REST API funcionando.


4. Configurar el puerto y otros parámetros

Si quieres usar otro puerto (por ejemplo, 9090), es muy sencillo. Abre el archivo application.properties en src/main/resources y añade la línea:


server.port=9090

Ahora reinicia la aplicación y abre http://localhost:9090/hello. El puerto ha cambiado y la aplicación sigue funcionando. Cómodo, ¿no?


5. Ejercicio práctico: añadimos CRUD

Para afianzar lo aprendido, añade a tu aplicación un nuevo controlador TaskController. Este controlador trabajará con una lista simple de tareas. Para simplificar no vamos a usar una base de datos todavía — simplemente manejaremos las operaciones en memoria.

Paso 1. Clase auxiliar Task

Añade a tu proyecto la siguiente clase:


package com.example.helloworldapp;

public class Task {
    private Long id;
    private String name;

    public Task(Long id, String name) {
        this.id = id;
        this.name = name;
    }

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}

Paso 2. Implementación del controlador

Añade la nueva clase TaskController:


package com.example.helloworldapp;

import org.springframework.web.bind.annotation.*;

import java.util.ArrayList;
import java.util.List;

@RestController
@RequestMapping("/tasks")
public class TaskController {

    private final List<Task> tasks = new ArrayList<>();

    @GetMapping
    public List<Task> getTasks() {
        return tasks;
    }

    @PostMapping
    public Task addTask(@RequestBody Task task) {
        tasks.add(task);
        return task;
    }

    @DeleteMapping("/{id}")
    public void deleteTask(@PathVariable Long id) {
        tasks.removeIf(task -> task.getId().equals(id));
    }
}

Ahora puedes añadir, obtener y borrar tareas a través de la URL /tasks.


Errores comunes y cómo evitarlos

  1. Si la aplicación no arranca, comprueba las dependencias en el archivo pom.xml. Quizá olvidaste añadir spring-boot-starter-web.
  2. Si no ves resultado en el navegador, asegúrate de que tu método del controlador está anotado con @GetMapping u otra anotación adecuada.
  3. Al cambiar código, asegúrate de reiniciar la aplicación. O usa Spring Boot DevTools para recarga automática.
  4. Error típico de principiantes — olvidar escribir la ruta correcta al método. Por ejemplo, la petición /api/tasks no funcionará si tu controlador escucha en /tasks.

En este punto tu aplicación Spring Boot está lista! Ahora puedes crear aplicaciones web, REST API y mucho más sin ahogarte en configuraciones. Pero esto es solo el comienzo de tu aventura. Prepárate para muchas más posibilidades por delante.

Comentarios
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION