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.
- Abre Spring Initializr en tu navegador.
- 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+).
- Añade la dependencia:
- Spring Web (la necesitas para trabajar con REST-controllers).
- 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:
@RestControllercombina@Controllery@ResponseBody. Esto sirve para devolver datos directamente en la respuesta HTTP (sin usar plantillas).@RequestMappingfija la URL base para todas las peticiones de este controlador. En nuestro caso es/api.@GetMapping("/hello")indica que el métodosayHellose 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:
- La anotación
@SpringBootApplicationincluye:@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.
- El método
mainarranca la aplicación. Sí, ¡Spring Boot es así de simple! 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
- Error 404 (Not Found): comprueba que la URL sea
/api/hello. Puede que la hayas escrito mal o que olvidaras poner/apien@RequestMapping. - La aplicación no arranca: asegúrate de que la clase
HelloworldApplicationesté en el paquete raízcom.example.helloworld. - 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 - Problemas con dependencias: comprueba que en tu
pom.xmltengas 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.
GO TO FULL VERSION