Lors de la création d'une application avec Spring (Boot), vous souhaiterez peut-être obtenir la valeur de la variable d'environnement système. Je vais vous présenter la méthode d'acquisition qui sert également de mémo.
Par exemple, si vous souhaitez vous connecter à la base de données, vous devez définir ce qui suit dans ʻapplication.properties`.
application.properties
###Valeur du paramètre de connexion à la base de données###
spring.datasource.url=<URL de la base de données>
spring.datasource.username=<Nom d'utilisateur>
spring.datasource.password=<mot de passe>
Dans un tel cas, si chaque valeur de paramètre est acquise à partir de la variable d'environnement système, les mérites suivants peuvent être pris en compte.
① __ Il n'est pas nécessaire de créer un fichier de paramètres pour chaque environnement. __ Le même fichier de configuration peut être utilisé dans d'autres environnements en définissant des variables d'environnement à l'avance ou en les définissant au moment de l'exécution. La création et la gestion de plusieurs fichiers de paramètres (par exemple, ʻapplication-devXX.properties`) pour chaque environnement sont gênants, donc ils peuvent être omis.
En outre, il n'est pas nécessaire d'écrire le processus de définition du fichier à lire pour chaque environnement dans le code source. (Parce que Spring Boot charge ʻapplication.properties` par défaut)
② __ Cela conduit à une amélioration de la sécurité. __ Si vous mettez les informations que vous voulez garder secrètes telles que le nom d'utilisateur et le mot de passe du chemin dans le solide dans ʻapplication.properties` et les téléchargez dans le référentiel distant, cela peut causer un problème de sécurité.
Si vous la définissez en tant que variable d'environnement, la valeur ne sera pas écrite directement, vous pouvez donc la pousser vers le référentiel distant en toute confiance.
Réglez dans le format suivant.
application.properties
spring.datasource.url=${SPRING_DATASOURCE_URL}
spring.datasource.username=${SPRING_DATASOURCE_USERNAME}
spring.datasource.password=${SPRING_DATASOURCE_PASSWORD}
Par exemple, si vous expliquez spring.datasource.username = $ {SPRING_DATASOURCE_USERNAME}
,
(1) Tout d'abord, ajoutez une variable telle que SPRING_DATASOURCE_USERNAME = HogeHoge
à la variable d'environnement système.
Pour le nom de la variable d'environnement, remplacez la valeur cible ". "
Dans le fichier de configuration par " _ "
puis mettez-la en majuscule.
spring.datasource.username
⇒ spring_datasource_username
⇒ SPRING_DATASOURCE_USERNAME
(2) Dans ʻapplication.properties, définissez le nom de la variable d'environnement système sur la valeur incluse dans
$ {} , telle que
$ {SPRING_DATASOURCE_USERNAME}`.
Les variables d'environnement système sont maintenant disponibles à partir de ʻapplication.properties`.
Si vous développez en utilisant eclipse ou sts, après avoir ajouté des variables d'environnement système, ceux qui démarrent l'application Spring Boot sur eclipse (sts) ou redémarrent une fois en essayant d'exécuter JUnit Est bon. Les variables d'environnement système peuvent ne pas être lues et une erreur peut se produire.
Probablement parce que la variable d'environnement système est lue et utilisée lorsque eclipse (sts) est démarrée, même si la variable d'environnement est ajoutée au démarrage, elle n'est pas reflétée, mais les détails sont inconnus.
Les variables d'environnement système peuvent être utilisées à partir du fichier de paramètres! !! !! !! !! (Wazap)