¿Dónde sueles poner ajustes como la URL de la base de datos en Spring Boot, y cómo cambias entre entornos?
Opciones
- Escritos en las clases Java, y se cambian recompilando
- En
application.yml, conspring.profiles.active(Opción correcta) - Solo en
pom.xml, dentro de la sección de dependencias - 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 variableRecuerda
Config en application.yml, por entorno con perfiles, secretos con variables de entorno.