Curso de Spring Boot
En este capítulo prepararemos todo lo necesario para desarrollar aplicaciones con Spring Boot moderno.
Veremos:
- Java
- Maven
- Spring Initializr
- estructura de un proyecto
- ejecutar nuestra primera aplicación
No te preocupes: todo es bastante sencillo.
2.1 Instalar Java (JDK)
Spring Boot necesita Java para funcionar.
Actualmente Spring Boot 3 usa:
- Java 17 o superior
Recomendado:
Java 21 (LTS)
Comprobar si Java ya está instalado
En la terminal escribe:
1java -version
Ejemplo de salida:
openjdk version "21.0.2"
Si aparece algo así, ya tienes Java instalado.
Instalar Java
Puedes descargar Java desde:
Recomendado:
Temurin (Adoptium)
2.2 Instalar Maven
Maven es una herramienta que sirve para:
- gestionar dependencias
- compilar el proyecto
- ejecutar la aplicación
- crear el archivo final (.jar)
Comprobar si Maven está instalado
En la terminal:
1mvn -v
Ejemplo:
Apache Maven 3.9
Instalar Maven
Descarga:
https://maven.apache.org/download.cgi
Después añade Maven al PATH del sistema.
2.3 Qué es Spring Initializr
Crear proyectos Spring Boot manualmente sería tedioso.
Para eso existe:
Spring Initializr
Una herramienta que genera proyectos automáticamente.
Página oficial:
Qué permite hacer
Spring Initializr permite elegir:
- versión de Java
- versión de Spring Boot
- dependencias
- tipo de proyecto
Después descarga el proyecto listo para usar.
2.4 Crear nuestro primer proyecto
Abrimos:
Configuración recomendada:
| opción | valor |
|---|---|
| Project | Maven |
| Language | Java |
| Spring Boot | última versión |
| Group | com.example |
| Artifact | demo |
| Packaging | Jar |
| Java | 21 |
Dependencias
Para empezar añadimos:
Spring Web
Esto permite crear APIs REST.
Generar proyecto
Pulsa:
Generate
Se descargará un archivo:
demo.zip
Descomprime el proyecto.
2.5 Abrir el proyecto en el IDE
Puedes usar:
- IntelliJ IDEA (recomendado)
- VS Code
- Eclipse
Abrir en IntelliJ
- File
- Open
- Seleccionar carpeta del proyecto
IntelliJ detectará automáticamente que es un proyecto Maven.
2.6 Estructura del proyecto
Un proyecto Spring Boot tiene esta estructura:
demo
├── src
│ ├── main
│ │ ├── java
│ │ │ └── com.example.demo
│ │ │ └── DemoApplication.java
│ │ └── resources
│ │ └── application.properties
│
│ └── test
│
├── pom.xml
Archivos importantes
pom.xml
Archivo de configuración de Maven.
Aquí se definen:
- dependencias
- versión de Java
- plugins
Ejemplo:
1<dependencies> 2 3 <dependency> 4 <groupId>org.springframework.boot</groupId> 5 <artifactId>spring-boot-starter-web</artifactId> 6 </dependency> 7 8</dependencies>
DemoApplication.java
Clase principal de la aplicación.
1@SpringBootApplication 2public class DemoApplication { 3 4 public static void main(String[] args) { 5 SpringApplication.run(DemoApplication.class, args); 6 } 7 8}
Esta clase:
- arranca Spring Boot
- inicia el servidor web
- carga toda la configuración
application.properties
Archivo de configuración.
Ejemplo:
server.port=8080
Permite configurar:
- base de datos
- puerto
- logs
- seguridad
2.7 Ejecutar la aplicación
Hay varias formas.
Desde el IDE
Simplemente ejecuta:
DemoApplication.java
Desde terminal
Dentro del proyecto:
1mvn spring-boot:run
Resultado
Verás algo así:
Tomcat started on port 8080
Started DemoApplication
Esto significa que el servidor está funcionando.
2.8 Probar la aplicación
Abrimos el navegador:
http://localhost:8080
Todavía no hay rutas definidas, por lo que veremos un error 404.
Esto es normal.
2.9 Crear nuestro primer endpoint
Vamos a crear una clase nueva:
HelloController
1package com.example.demo; 2 3import org.springframework.web.bind.annotation.GetMapping; 4import org.springframework.web.bind.annotation.RestController; 5 6@RestController 7public class HelloController { 8 9 @GetMapping("/hello") 10 public String hello() { 11 return "Hola Spring Boot"; 12 } 13 14}
Probar endpoint
Abrimos:
http://localhost:8080/hello
Resultado:
Hola Spring Boot
Hemos creado nuestra primera API REST.
2.10 Qué ha pasado internamente
Spring Boot ha hecho muchas cosas automáticamente:
- arrancó el servidor Tomcat
- creó el contexto Spring
- detectó
@RestController - registró la ruta
/hello - envió la respuesta
Todo sin configuración manual.
- Loading...