Skip to content

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
DB_URL=jdbc:mysql://localhost:3306/bd_test
DB_USER=root
DB_PASSWORD=password

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]