J'ai 3 fichiers yml
à savoir
application-default.yml
-> propriétés par défaut, devrait être disponible dans tous les profilsapplication-dev.yml
-> propriétés uniquement pour le profil dev application-prod.yml
-> propriétés uniquement pour le profil prodLorsque je démarre mon application de démarrage en passant le -Dspring.profiles.active=dev
, je peux accéder aux propriétés spécifiques à application-dev.yml
. Mais je ne peux pas obtenir les propriétés définies dans les fichiers application-default.yml
. Voici mon fichier application-dev.yml
:
Spring:
profiles:
include: default
spring.profiles: dev
prop:
key:value
J'ai pu résoudre mon problème, voici ce que j'ai fait.
Créé un fichier application-common.yml, mettez les propriétés communes là-bas. Puis, dans les fichiers application- {env} .yml, je mets ceci au-dessus.
spring:
profiles:
include: default
Comme je n'ai pas besoin de charger le profil par défaut, cela fonctionne pour moi !!!
TL; DR
Il suffit de renommer le fichier application-default.yml fichier en application.yml et fonctionnera comme prévu.
Explication
Selon la description dans la documentation , un fichier appelé application- {suffixe} .yml est activé lorsque vous exécutez votre application avec le profil dont le nom correspond au suffixe. De plus, le principal application.yml est chargé par défaut, ce qui en fait le lieu idéal pour définir les propriétés communes de tous les profils. Si vous souhaitez conserver le nom de votre fichier en tant qu'application-default.yml, vous pouvez également transmettre deux profils à votre application Spring Boot:
-Dspring.profiles.active=default,dev
De cette façon, vous activerez deux profils et les deux fichiers de propriétés seront chargés.
Ce que je fais c'est:
Mettez les paramètres communs dans application.xml
, et dans ce fichier, ajoutez:
spring:
profiles:
active: dev, pro, xxx...
tous les profils que vous souhaitez activer.
Alors que vous venez de modifier ce fichier pour changer d’environnement.
N'oubliez pas que les fichiers externes sont traités, vous pouvez donc laisser un autre application.xml
en dehors du fichier WAR pour activer l'environnement dev
/pro
/... au lieu de modifier ce fichier à chaque fois. Assurez-vous de vérifier la documentation:
https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-external-config.html