SpringBoot: Introducción y entorno
Descubre cómo configurar y preparar el entorno para desarrollar aplicaciones con Spring Boot, simplificando proyectos Java empresariales.
Aprende SpringBoot GRATIS y certifícateIntroducción y entorno de Spring Boot
Spring Boot representa una evolución natural del ecosistema Spring, diseñado para simplificar el desarrollo de aplicaciones Java empresariales. Esta tecnología elimina gran parte de la configuración manual tradicionalmente asociada con Spring Framework, permitiendo a los desarrolladores centrarse en la lógica de negocio en lugar de en detalles de configuración.
¿Qué es Spring Boot?
Spring Boot es un framework de desarrollo que facilita la creación de aplicaciones Java independientes y listas para producción. Su filosofía se basa en el principio de "convención sobre configuración", lo que significa que proporciona configuraciones predeterminadas sensatas que funcionan en la mayoría de casos de uso.
La principal ventaja de Spring Boot radica en su capacidad para autoconfiguración. El framework analiza las dependencias presentes en el proyecto y configura automáticamente los componentes necesarios. Por ejemplo, si detecta una dependencia de base de datos H2 en el classpath, configurará automáticamente una fuente de datos en memoria.
Características fundamentales
Aplicaciones independientes
Spring Boot permite crear aplicaciones ejecutables que incluyen un servidor web embebido. Esto significa que no necesitas desplegar tu aplicación en un servidor externo como Tomcat o Jetty, ya que viene integrado.
@SpringBootApplication
public class MiAplicacionApplication {
public static void main(String[] args) {
SpringApplication.run(MiAplicacionApplication.class, args);
}
}
Starters para simplificar dependencias
Los Spring Boot Starters son descriptores de dependencias que agrupan las librerías necesarias para funcionalidades específicas. En lugar de gestionar múltiples dependencias individuales, puedes incluir un starter que se encarga de todo.
Ejemplo de starter para aplicaciones web:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
Este starter incluye automáticamente Spring MVC, Tomcat embebido, Jackson para JSON, y otras dependencias relacionadas con el desarrollo web.
Configuración mediante propiedades
Spring Boot utiliza archivos de configuración externa para personalizar el comportamiento de la aplicación. El archivo application.properties
o application.yml
permite modificar configuraciones sin cambiar código.
server.port=8080
spring.datasource.url=jdbc:h2:mem:testdb
spring.jpa.show-sql=true
Preparación del entorno de desarrollo
Requisitos del sistema
Para trabajar con Spring Boot necesitas tener instalado Java Development Kit (JDK) versión 17 o superior. Spring Boot 3.5 requiere como mínimo Java 17, aprovechando las características modernas del lenguaje.
Herramientas de construcción
Spring Boot es compatible con las principales herramientas de construcción de Java:
Maven es la opción más común y utiliza un archivo pom.xml
para gestionar dependencias:
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>3.5.0</version>
<relativePath/>
</parent>
Gradle ofrece una sintaxis más concisa y utiliza archivos build.gradle
:
plugins {
id 'org.springframework.boot' version '3.5.0'
id 'io.spring.dependency-management' version '1.1.0'
id 'java'
}
Creación de proyectos
Spring Initializr es la herramienta oficial para generar proyectos Spring Boot. Disponible en https://start.spring.io, permite seleccionar dependencias, versiones y configuraciones básicas del proyecto.
Los IDEs modernos como IntelliJ IDEA, Eclipse o Visual Studio Code incluyen integración directa con Spring Initializr, permitiendo crear proyectos desde el propio entorno de desarrollo.
Estructura de un proyecto Spring Boot
Un proyecto típico de Spring Boot sigue la estructura estándar de Maven:
src/
├── main/
│ ├── java/
│ │ └── com/ejemplo/aplicacion/
│ │ └── AplicacionApplication.java
│ └── resources/
│ ├── application.properties
│ ├── static/
│ └── templates/
└── test/
└── java/
La clase principal debe estar anotada con @SpringBootApplication
, que combina tres anotaciones esenciales:
@Configuration
: Indica que la clase puede contener definiciones de beans@EnableAutoConfiguration
: Habilita la configuración automática de Spring Boot@ComponentScan
: Escanea componentes en el paquete actual y subpaquetes
Configuración y perfiles
Archivos de configuración
Spring Boot busca configuración en varios formatos y ubicaciones. Los archivos de propiedades son la forma más directa de configurar la aplicación:
# Configuración del servidor
server.port=8090
server.servlet.context-path=/api
# Configuración de logging
logging.level.com.ejemplo=DEBUG
logging.file.name=aplicacion.log
Perfiles de configuración
Los perfiles permiten tener diferentes configuraciones para distintos entornos. Puedes crear archivos específicos como application-desarrollo.properties
o application-produccion.properties
.
# application-desarrollo.properties
spring.datasource.url=jdbc:h2:mem:devdb
spring.jpa.show-sql=true
# application-produccion.properties
spring.datasource.url=jdbc:mysql://localhost:3306/proddb
spring.jpa.show-sql=false
Para activar un perfil específico, utiliza la propiedad spring.profiles.active
:
spring.profiles.active=desarrollo
Servidor embebido y despliegue
Spring Boot incluye servidores web embebidos que simplifican enormemente el despliegue. Por defecto utiliza Apache Tomcat, pero puedes cambiarlo por Jetty o Undertow según tus necesidades.
La aplicación se ejecuta como un JAR ejecutable que contiene todas las dependencias necesarias:
java -jar mi-aplicacion-1.0.0.jar
Esta aproximación elimina la necesidad de instalar y configurar servidores de aplicaciones externos, facilitando tanto el desarrollo como el despliegue en diferentes entornos.
Lecciones de este módulo de SpringBoot
Lecciones de programación del módulo Introducción y entorno del curso de SpringBoot.