CodeGym /Cursos /Módulo 5. Spring /Desarrollo de la primera aplicación Spring

Desarrollo de la primera aplicación Spring

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

Antes de empezar, aclaremos una cosa: Hello World no es solo tradición, es una especie de rito de iniciación. Si no has escrito "Hello World" en tu nuevo framework, significa que aún no has empezado a trabajar con él. Hoy vamos a crear nuestro primer proyecto con Spring Boot. ¿Y sabes qué? Va a ser súper sencillo, sin dolores de cabeza innecesarios. ¿Listo? ¡Vamos!


Paso 1: Preparación del proyecto

Empecemos creando la estructura de nuestro proyecto. Para eso usaremos Spring Initializr — una herramienta cómoda para generar el esqueleto básico de aplicaciones Spring Boot.

  1. Abre Spring Initializr en tu navegador.
  2. Rellena los siguientes parámetros:
    • Project: Maven (o Gradle — a tu gusto, pero en este ejemplo usamos Maven).
    • Language: Java.
    • Spring Boot Version: 3.1.0 (última versión estable).
    • Group: com.example.
    • Artifact: helloworld.
    • Name: helloworld.
    • Packaging: jar.
    • Java Version: 17 (o la que use tu entorno, pero mejor 17+).
  3. Añade la dependencia:
    • Spring Web (la necesitas para trabajar con REST-controllers).
  4. Pulsa "Generate" — se descargará tu proyecto como un archivo comprimido.

Descomprime el proyecto en una carpeta conveniente en tu equipo y ábrelo en tu IDE favorito. Hasta ahora la mayoría ha usado IntelliJ IDEA (Community Edition funciona perfectamente). Aquí también te vale sin problema.


Paso 2: Estructura del proyecto

Veamos cómo queda la estructura del proyecto. Más o menos se verá así:

helloworld/
├── src/
│   ├── main/
│   │   ├── java/
│   │   │   └── com/example/helloworld/
│   │   │       └── HelloworldApplication.java
│   │   ├── resources/
│   │       └── application.properties
├── pom.xml
  • src/main/java — aquí escribiremos nuestro código Java.
  • src/main/resources/application.properties — el archivo principal de configuración de la aplicación.
  • HelloworldApplication.java — nuestra clase principal con la anotación @SpringBootApplication. Desde aquí se arranca todo.

Y, por supuesto, el pom.xml (o build.gradle, si elegiste Gradle) para gestionar dependencias.


Paso 3: Creación del controlador Hello World

¡Manos a la obra! Necesitamos crear una clase controlador que devuelva el mensaje "Hello World!". Un controlador es el componente que procesa las peticiones HTTP que llegan a tu aplicación.

Crea un nuevo archivo HelloController.java en la carpeta src/main/java/com/example/helloworld:


package com.example.helloworld;

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

// La anotación @RestController convierte esta clase en un REST-controller.
@RestController
@RequestMapping("/api") // Ruta base para todos los endpoints de este controller.
public class HelloController {

    // La anotación @GetMapping indica que este método maneja peticiones GET.
    @GetMapping("/hello")
    public String sayHello() {
        // Devolvemos un mensaje simple.
        return "Hello, World!";
    }
}

En resumen:

  • @RestController combina @Controller y @ResponseBody. Esto sirve para devolver datos directamente en la respuesta HTTP (sin usar plantillas).
  • @RequestMapping fija la URL base para todas las peticiones de este controlador. En nuestro caso es /api.
  • @GetMapping("/hello") indica que el método sayHello se llamará cuando el cliente haga una petición GET a /api/hello.

Paso 4: Configuración y arranque de la aplicación

Ahora asegurémonos de que la aplicación arranca. Abre HelloworldApplication.java (ya fue generado por Spring Initializr). Verás el siguiente código:


package com.example.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);
    }
}

Esta clase hace tres cosas:

  1. La anotación @SpringBootApplication incluye:
    • @Configuration — permite definir beans de configuración.
    • @EnableAutoConfiguration — configura automáticamente lo que se pueda.
    • @ComponentScan — busca componentes (beans) en el paquete actual y sus subpaquetes.
  2. El método main arranca la aplicación. Sí, ¡Spring Boot es así de simple!
  3. SpringApplication.run() inicializa nuestro contexto y el servidor.

Ahora ejecuta la aplicación. Puedes hacerlo:

  • En IntelliJ IDEA: haz clic en el triángulo verde junto a main.
  • Desde la terminal: ejecuta el comando mvn spring-boot:run.

Si todo va bien, verás en la terminal algo como:


Tomcat started on port(s): 8080 (http) with context path ''
Started HelloworldApplication in 2.345 seconds

Paso 5: Verificación del funcionamiento

Ahora vamos a comprobar que todo funciona. Abre tu navegador (o Postman, si quieres parecer profesional) y ve a la siguiente dirección:


http://localhost:8080/api/hello

¡Listo! Deberías ver:


Hello, World!

¿Cómo funciona esto?

Cuando envías una petición GET a /api/hello, Spring Boot llama automáticamente al método sayHello() en tu controlador. Ese método devuelve la cadena "Hello, World!", que se muestra en tu navegador.


Errores típicos y cómo solucionarlos

  1. Error 404 (Not Found): comprueba que la URL sea /api/hello. Puede que la hayas escrito mal o que olvidaras poner /api en @RequestMapping.
  2. La aplicación no arranca: asegúrate de que la clase HelloworldApplication esté en el paquete raíz com.example.helloworld.
  3. Error de puerto (Port already in use): eso significa que el puerto 8080 ya está en uso. Puedes cambiar el puerto en application.properties, añadiendo la línea:
    
    server.port=8081
    
  4. Problemas con dependencias: comprueba que en tu pom.xml tengas la dependencia para Spring Web:
    
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    

Aplicación práctica de los conocimientos

Entender cómo crear una aplicación simple es el primer paso para escribir un REST API completo. En las entrevistas a menudo preguntan "¿Cómo crear un proyecto básico de Spring Boot?", y saber configurar un controlador para manejar peticiones HTTP ya te da más confianza.

Más adelante añadiremos controladores más complejos, bases de datos, transacciones y seguridad, pero ya has aprendido las herramientas fundamentales que te servirán para tareas más serias.

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