2. Configuración del Entorno de Desarrollo
☕ 2.1 Instalación de JDK
Section titled “☕ 2.1 Instalación de JDK”Requisitos mínimos
Section titled “Requisitos mínimos”| Spring Boot | JDK Mínimo | JDK Recomendado |
|---|---|---|
| 3.x | Java 17 | Java 21 |
| 2.x | Java 8 | Java 11/17 |
Descargar JDK
Section titled “Descargar JDK”Opciones recomendadas:
- Eclipse Temurin (Adoptium) - Gratuito y open source
- Oracle JDK - Licencia comercial
- Amazon Corretto - Gratuito de AWS
Instalación en Windows
Section titled “Instalación en Windows”# 1. Descargar el instalador .msi de Adoptium# 2. Ejecutar el instalador# 3. Verificar instalación:java -version
# Salida esperada:openjdk version "21.0.2" 2024-01-16OpenJDK Runtime Environment Temurin-21.0.2+13 (build 21.0.2+13)OpenJDK 64-Bit Server VM Temurin-21.0.2+13 (build 21.0.2+13, mixed mode)Instalación en macOS
Section titled “Instalación en macOS”# Usando Homebrewbrew install openjdk@21
# Agregar al PATHecho 'export PATH="/opt/homebrew/opt/openjdk@21/bin:$PATH"' >> ~/.zshrcsource ~/.zshrc
# Verificarjava -versionInstalación en Linux
Section titled “Instalación en Linux”# Ubuntu/Debiansudo apt updatesudo apt install openjdk-21-jdk
# Fedora/RHELsudo dnf install java-21-openjdk-devel
# Verificarjava -version⚙️ 2.2 Configuración de Variables de Entorno
Section titled “⚙️ 2.2 Configuración de Variables de Entorno”Windows
Section titled “Windows”# 1. Abrir "Variables de entorno del sistema"# 2. Crear variable JAVA_HOME:JAVA_HOME = C:\Program Files\Eclipse Adoptium\jdk-21.0.2.13-hotspot
# 3. Agregar al PATH:%JAVA_HOME%\bin
# 4. Verificar en CMD:echo %JAVA_HOME%java -versionmacOS/Linux
Section titled “macOS/Linux”# Agregar a ~/.bashrc o ~/.zshrcexport JAVA_HOME=/usr/lib/jvm/java-21-openjdkexport PATH=$JAVA_HOME/bin:$PATH
# Aplicar cambiossource ~/.bashrc
# Verificarecho $JAVA_HOMEjava -version💻 2.3 Uso de IntelliJ IDEA para Spring
Section titled “💻 2.3 Uso de IntelliJ IDEA para Spring”Descarga e instalación
Section titled “Descarga e instalación”- Descargar IntelliJ IDEA
- Community: Gratuito (suficiente para Spring)
- Ultimate: De pago (soporte nativo para Spring)
Configuración inicial
Section titled “Configuración inicial”# Configurar JDK en IntelliJ:# 1. File → Project Structure → SDKs# 2. Click en "+" → Add JDK# 3. Seleccionar la carpeta de instalación de Java 21
# Plugins recomendados (Community):# - Spring Boot Assistant# - Lombok# - Maven HelperAtajos útiles
Section titled “Atajos útiles”| Atajo | Acción |
|---|---|
Ctrl + Shift + F10 | Ejecutar aplicación |
Ctrl + F9 | Compilar proyecto |
Alt + Enter | Sugerencias rápidas |
Ctrl + Shift + A | Buscar acciones |
Ctrl + N | Buscar clase |
🚀 2.4 Creación de Proyectos con Spring Initializr
Section titled “🚀 2.4 Creación de Proyectos con Spring Initializr”Opción 1: Web (start.spring.io)
Section titled “Opción 1: Web (start.spring.io)”- Ir a start.spring.io
- Configurar el proyecto:
Project: MavenLanguage: JavaSpring Boot: 3.2.x (última estable)
Project Metadata:Group: com.ejemploArtifact: mi-proyectoName: mi-proyectoPackage name: com.ejemplo.miproyectoPackaging: JarJava: 21
Dependencies:- Spring Web- Spring Data JPA- H2 Database (para desarrollo)- Lombok- Spring Boot DevTools- Click en Generate → Descargar ZIP
- Extraer y abrir en IntelliJ
Opción 2: Desde IntelliJ (Ultimate)
Section titled “Opción 2: Desde IntelliJ (Ultimate)”# File → New → Project# Seleccionar "Spring Initializr"# Configurar igual que en la web# IntelliJ descarga y configura automáticamente📁 2.5 Estructura de Carpetas en Spring Boot
Section titled “📁 2.5 Estructura de Carpetas en Spring Boot”mi-proyecto/├── src/│ ├── main/│ │ ├── java/│ │ │ └── com/ejemplo/miproyecto/│ │ │ ├── MiProyectoApplication.java # Clase principal│ │ │ ├── controller/ # Controladores REST│ │ │ ├── service/ # Lógica de negocio│ │ │ ├── repository/ # Acceso a datos│ │ │ ├── model/ # Entidades/DTOs│ │ │ └── config/ # Configuraciones│ │ └── resources/│ │ ├── application.properties # Configuración│ │ ├── application.yml # Alternativa YAML│ │ ├── static/ # Archivos estáticos│ │ └── templates/ # Plantillas (Thymeleaf)│ └── test/│ └── java/ # Tests├── pom.xml # Dependencias Maven└── README.md📦 2.6 Gestión de Dependencias con Maven
Section titled “📦 2.6 Gestión de Dependencias con Maven”Archivo pom.xml básico
Section titled “Archivo pom.xml básico”<?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>
<!-- Heredar de Spring Boot Parent --> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>3.2.3</version> </parent>
<groupId>com.ejemplo</groupId> <artifactId>mi-proyecto</artifactId> <version>1.0.0</version> <name>mi-proyecto</name>
<properties> <java.version>21</java.version> </properties>
<dependencies> <!-- Spring Web --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency>
<!-- Spring Data JPA --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency>
<!-- Base de datos H2 (desarrollo) --> <dependency> <groupId>com.h2database</groupId> <artifactId>h2</artifactId> <scope>runtime</scope> </dependency>
<!-- Lombok --> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <optional>true</optional> </dependency>
<!-- Testing --> <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>Comandos Maven útiles
Section titled “Comandos Maven útiles”# Compilar proyectomvn compile
# Ejecutar testsmvn test
# Empaquetar (crear JAR)mvn package
# Ejecutar aplicaciónmvn spring-boot:run
# Limpiar y empaquetarmvn clean package
# Saltar tests al empaquetarmvn package -DskipTests🐘 2.7 Gestión de Dependencias con Gradle
Section titled “🐘 2.7 Gestión de Dependencias con Gradle”Archivo build.gradle básico
Section titled “Archivo build.gradle básico”plugins { id 'java' id 'org.springframework.boot' version '3.2.3' id 'io.spring.dependency-management' version '1.1.4'}
group = 'com.ejemplo'version = '1.0.0'
java { sourceCompatibility = '21'}
repositories { mavenCentral()}
dependencies { // Spring Web implementation 'org.springframework.boot:spring-boot-starter-web'
// Spring Data JPA implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
// H2 Database runtimeOnly 'com.h2database:h2'
// Lombok compileOnly 'org.projectlombok:lombok' annotationProcessor 'org.projectlombok:lombok'
// Testing testImplementation 'org.springframework.boot:spring-boot-starter-test'}
tasks.named('test') { useJUnitPlatform()}Comandos Gradle útiles
Section titled “Comandos Gradle útiles”# Compilar./gradlew build
# Ejecutar./gradlew bootRun
# Tests./gradlew test
# Limpiar./gradlew clean
# Crear JAR./gradlew bootJar▶️ 2.8 Ejecución de Proyectos Spring
Section titled “▶️ 2.8 Ejecución de Proyectos Spring”Desde IntelliJ
Section titled “Desde IntelliJ”# 1. Abrir la clase principal (MiProyectoApplication.java)# 2. Click derecho → Run 'MiProyectoApplication'# 3. O usar el botón verde ▶️ en el margen izquierdoDesde terminal
Section titled “Desde terminal”# Con Mavenmvn spring-boot:run
# Con Gradle./gradlew bootRun
# Ejecutar JAR directamentejava -jar target/mi-proyecto-1.0.0.jarVerificar que funciona
Section titled “Verificar que funciona”# La aplicación inicia en http://localhost:8080# Verás en consola:
. ____ _ __ _ _/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \\\/ ___)| |_)| | | | | || (_| | ) ) ) )' |____| .__|_| |_|_| |_\__, | / / / /=========|_|==============|___/=/_/_/_/:: Spring Boot :: (v3.2.3)
Started MiProyectoApplication in 2.5 seconds
🐝