En este tema, aprenderemos cómo configurar una aplicación Spring Boot. La configuración es una parte esencial de cualquier aplicación, ya que permite personalizar el comportamiento de la aplicación según las necesidades específicas. Spring Boot facilita la configuración mediante el uso de propiedades y archivos de configuración.

Contenido

Archivos de Configuración

Spring Boot utiliza principalmente dos archivos para la configuración:

  • application.properties
  • application.yml

application.properties

Este es el archivo de configuración más común y sencillo. Las propiedades se definen en formato clave-valor.

server.port=8081
spring.datasource.url=jdbc:mysql://localhost:3306/mydb
spring.datasource.username=root
spring.datasource.password=secret

application.yml

Este archivo utiliza el formato YAML, que es más legible y estructurado.

server:
  port: 8081

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/mydb
    username: root
    password: secret

Propiedades Comunes de Spring Boot

A continuación, se presentan algunas propiedades comunes que se pueden configurar en Spring Boot:

Propiedad Descripción
server.port Configura el puerto en el que la aplicación escucha.
spring.datasource.url URL de la base de datos.
spring.datasource.username Nombre de usuario de la base de datos.
spring.datasource.password Contraseña de la base de datos.
logging.level.root Nivel de registro para la aplicación.
spring.jpa.show-sql Muestra las consultas SQL en la consola.

Configuración de Perfiles

Spring Boot permite definir diferentes configuraciones para diferentes entornos (desarrollo, prueba, producción) mediante el uso de perfiles.

Definición de Perfiles

Puedes definir perfiles en los archivos de configuración utilizando el sufijo -<profile>.

  • application-dev.properties
  • application-prod.properties

Activación de Perfiles

Para activar un perfil, puedes usar la propiedad spring.profiles.active en el archivo application.properties o pasarla como argumento al iniciar la aplicación.

spring.profiles.active=dev

O como argumento de línea de comandos:

java -jar myapp.jar --spring.profiles.active=dev

Configuración Externa

Spring Boot permite cargar configuraciones desde fuentes externas como variables de entorno, argumentos de línea de comandos, y sistemas de configuración centralizados.

Variables de Entorno

Puedes definir propiedades de configuración como variables de entorno.

export SPRING_DATASOURCE_URL=jdbc:mysql://localhost:3306/mydb

Argumentos de Línea de Comandos

Puedes pasar propiedades de configuración como argumentos al iniciar la aplicación.

java -jar myapp.jar --spring.datasource.url=jdbc:mysql://localhost:3306/mydb

Ejemplo Práctico

Vamos a crear una configuración básica para una aplicación Spring Boot que se conecta a una base de datos MySQL.

Paso 1: Crear el archivo application.properties

server.port=8080
spring.datasource.url=jdbc:mysql://localhost:3306/mydb
spring.datasource.username=root
spring.datasource.password=secret
spring.jpa.hibernate.ddl-auto=update
spring.jpa.show-sql=true

Paso 2: Crear una clase de configuración

package com.example.demo;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.jdbc.datasource.DriverManagerDataSource;

import javax.sql.DataSource;

@Configuration
public class DataSourceConfig {

    @Bean
    public DataSource dataSource() {
        DriverManagerDataSource dataSource = new DriverManagerDataSource();
        dataSource.setDriverClassName("com.mysql.cj.jdbc.Driver");
        dataSource.setUrl("jdbc:mysql://localhost:3306/mydb");
        dataSource.setUsername("root");
        dataSource.setPassword("secret");
        return dataSource;
    }
}

Ejercicio Práctico

Ejercicio 1: Configuración Básica

  1. Crea un nuevo proyecto Spring Boot.
  2. Configura el archivo application.properties para que la aplicación se ejecute en el puerto 9090 y se conecte a una base de datos PostgreSQL.
  3. Define las propiedades necesarias para la conexión a la base de datos.

Solución

server.port=9090
spring.datasource.url=jdbc:postgresql://localhost:5432/mydb
spring.datasource.username=postgres
spring.datasource.password=secret
spring.jpa.hibernate.ddl-auto=update
spring.jpa.show-sql=true

Ejercicio 2: Configuración de Perfiles

  1. Crea dos archivos de configuración: application-dev.properties y application-prod.properties.
  2. En application-dev.properties, configura la base de datos para que se conecte a una base de datos H2 en memoria.
  3. En application-prod.properties, configura la base de datos para que se conecte a una base de datos MySQL.
  4. Activa el perfil dev por defecto.

Solución

application-dev.properties

spring.datasource.url=jdbc:h2:mem:testdb
spring.datasource.driverClassName=org.h2.Driver
spring.datasource.username=sa
spring.datasource.password=password
spring.jpa.hibernate.ddl-auto=update
spring.jpa.show-sql=true

application-prod.properties

spring.datasource.url=jdbc:mysql://localhost:3306/mydb
spring.datasource.username=root
spring.datasource.password=secret
spring.jpa.hibernate.ddl-auto=update
spring.jpa.show-sql=true

application.properties

spring.profiles.active=dev

Conclusión

En esta sección, hemos aprendido cómo configurar una aplicación Spring Boot utilizando archivos de configuración, propiedades comunes, perfiles y configuraciones externas. La configuración adecuada es crucial para el correcto funcionamiento y personalización de una aplicación. En el próximo módulo, exploraremos cómo construir servicios web RESTful con Spring Boot.

Curso de Spring Boot

Módulo 1: Introducción a Spring Boot

Módulo 2: Conceptos Básicos de Spring Boot

Módulo 3: Construyendo Servicios Web RESTful

Módulo 4: Acceso a Datos con Spring Boot

Módulo 5: Seguridad en Spring Boot

Módulo 6: Pruebas en Spring Boot

Módulo 7: Funciones Avanzadas de Spring Boot

Módulo 8: Despliegue de Aplicaciones Spring Boot

Módulo 9: Rendimiento y Monitoreo

Módulo 10: Mejores Prácticas y Consejos

© Copyright 2024. Todos los derechos reservados