Repaso
English
Spring, JPA y Java WebIntermedioSPR-10

¿Dónde sueles poner ajustes como la URL de la base de datos en Spring Boot, y cómo cambias entre entornos?

Opciones

  1. Escritos en las clases Java, y se cambian recompilando
  2. En application.yml, con spring.profiles.active (Opción correcta)
  3. Solo en pom.xml, dentro de la sección de dependencias
  4. En el navegador, enviados con cada petición del usuario

Respuesta

En application.properties o application.yml, con perfiles (application-dev.yml, application-prod.yml) activados con spring.profiles.active

Por qué

Spring Boot lee la configuración de application.properties o application.yml en src/main/resources.

Para distintos entornos creas archivos de perfil como application-dev.yml y application-prod.yml y activas uno con spring.profiles.active=prod (o la variable de entorno SPRING_PROFILES_ACTIVE).

Los secretos (contraseñas, API keys) no deben subirse al repositorio: sobrescríbelos con variables de entorno o un gestor de secretos.

spring:
  datasource:
    url: jdbc:postgresql://localhost:5432/app
    username: app
    password: ${DB_PASSWORD}   # from an environment variable

Recuerda

Config en application.yml, por entorno con perfiles, secretos con variables de entorno.

Términos clave

Practica esta pregunta en Repaso