web-dev-qa-db-fra.com

fichier yml de printemps pour environnement spécifique

J'ai 3 fichiers yml à savoir 

  • application-default.yml -> propriétés par défaut, devrait être disponible dans tous les profils
  • application-dev.yml -> propriétés uniquement pour le profil dev
  • application-prod.yml -> propriétés uniquement pour le profil prod

Lorsque 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
6
Amar Dev

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 !!!

4
Amar Dev

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.

17

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

0
WesternGun