Dans Spring Boot, le fichier application.properties contient les paramètres de configuration de l'application. Lorsque l'application s'exécute sur différents environnements (local, Jenkins, OpenShift), il est souvent souhaité d'ajuster dynamiquement ces paramètres. Une approche pour y parvenir consiste à utiliser des variables d'environnement.
Pour définir des variables d'environnement, créez des variables d'environnement système localement et dans la VM Jenkins. Assurez-vous que ces variables ont les mêmes noms et valeurs que ceux utilisés dans OpenShift. Par exemple :
export OPENSHIFT_MYSQL_DB_HOST="jdbc:mysql://localhost" export OPENSHIFT_MYSQL_DB_PORT="3306" export OPENSHIFT_MYSQL_DB_USERNAME="root" export OPENSHIFT_MYSQL_DB_PASSWORD="123asd"
Pour utiliser des variables d'environnement dans application.properties, incluez-les simplement en utilisant la syntaxe ${VARIABLE_NAME}. Par exemple :
spring.datasource.url = ${OPENSHIFT_MYSQL_DB_HOST}:${OPENSHIFT_MYSQL_DB_PORT}/"nameofDB" spring.datasource.username = ${OPENSHIFT_MYSQL_DB_USERNAME} spring.datasource.password = ${OPENSHIFT_MYSQL_DB_PASSWORD}
Remarque : Il est également possible de créer des variables d'environnement à l'aide de l'objet Spring Environment, mais comme suggéré par @Stefan Isele, l'utilisation de la substitution directe de variable dans application.properties est une approche plus simple.
Une alternative à l'utilisation de variables d'environnement consiste à utiliser des profils Spring. Avec cette approche, vous pouvez créer plusieurs fichiers application.properties, chacun adapté à un environnement spécifique. Spring chargera automatiquement le fichier approprié en fonction de la valeur de la propriété spring.profiles.active, qui peut être définie en tant que variable d'environnement ou via des arguments de ligne de commande. Par exemple, vous pouvez créer des fichiers application-local.properties, application-jenkins.properties et application-openshift.properties. Dans ce cas, vous devez définir la variable OPENSHIFT_MYSQL_DB_HOST et spring.profiles.active=openshift lors du déploiement sur OpenShift.
En utilisant des profils, vous pouvez éviter d'exposer les informations d'identification de la base de données ou d'autres informations sensibles dans les variables d'environnement, car elles le sont. utilisé uniquement pour configurer le profil actif.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!