Annexe G - Utiliser un fichier d'environnement pour les propriétés
Il est possible d'importer des fichiers externes dans le fichier application.properties afin d'utiliser des variables d'environnement dans l'application. Ceci peut être très pratique si des variables d'une application déployée peuvent changer avec le temps; par exemple une migration de base de données.
Au lieu de devoir modifier le fichier de propriétés de l'application et de redéployer le tout, on pourra simplement changer la valeur dans le fichier d'environnement et redémarrer l'application déployée avec cette approche.
Créer un fichier .env avec les valeurs voulues
Dans cet exemple, j'utiliserai la configuration de la base de données comme exemple.
- Créer un fichier .env qui contient les variables pour la base de données
Dans le fichier application.properties on l'importe comme un ensemble de propriétés et on utilise les variables
spring.config.import=optional:file:chemin/vers/.env[.properties]
spring.datasource.url=${DB_URL}
spring.datasource.username=${DB_USER}
spring.datasource.password=${DB_PASSWORD}
Dans une application déployée
Tel que nous l'avons fait, l'application déployée est une archive web (.war) qu'on exécute avec Java. On peut donc utiliser un fichier d'environnement qui réside à l'extérier dues fichiers de l'archive pour pouvoir le modifier rapidement.
Par exemple:
Si l'application est déployée dans /opt/NomApplication/NomApplication.war
Je place le fichier environnement à /opt/NomApplication/.env
Dans le fichier application.properties on l'importe
spring.config.import=optional:file:/opt/NomApplication/.env[.properties]