it-swarm.com.de

spring-Yml-Datei für eine bestimmte Umgebung

Ich habe nämlich 3 yml-Dateien 

  • application-default.yml -> Standardeigenschaften, sollten in allen Profilen verfügbar sein
  • application-dev.yml -> Eigenschaften nur für dev Profil
  • application-prod.yml -> Eigenschaften nur für Produktprofil

Wenn ich meine Boot-Anwendung durch Übergeben des -Dspring.profiles.active=dev starte, kann ich auf die application-dev.yml-spezifischen Eigenschaften zugreifen. Ich kann jedoch nicht die in den application-default.yml-Dateien definierten Eigenschaften erhalten. Folgendes ist meine application-dev.yml-Datei:

Spring:
 profiles:
  include: default

spring.profiles: dev

prop:
 key:value
6
Amar Dev

Ich konnte mein Problem lösen, hier ist was ich getan habe.

Erstellte eine Datei application-common.yml und fügte die allgemeinen Eigenschaften dort ein. Dann habe ich in den application- {env} .yml-Dateien diese auf die oberste Ebene gesetzt.

spring:
 profiles:
  include: default

Da ich das Standardprofil nicht unbedingt laden muss, funktioniert das für mich !!!

4
Amar Dev

TL; DR

Benennen Sie einfach die Datei application-default.yml in application.yml um und funktionieren wie erwartet.

Erklärung

Gemäß der Beschreibung in den docs wird eine Datei mit dem Namen application- {Suffix} .yml aktiviert, wenn Sie Ihre Anwendung mit dem Profil ausführen, dessen Name mit dem Suffix übereinstimmt. Darüber hinaus wird das main application.yml standardmäßig geladen, so dass es der ideale Ort ist, um allgemeine Eigenschaften für alle Profile festzulegen. Wenn Sie den Namen Ihrer Datei als application-default.yml beibehalten möchten, können Sie alternativ zwei Profile an Ihre Spring Boot-Anwendung übergeben:

-Dspring.profiles.active=default,dev

Auf diese Weise aktivieren Sie zwei Profile und beide Eigenschaftendateien werden geladen.

17

Was ich mache ist:

Setzen Sie allgemeine Einstellungen in application.xml und fügen Sie in dieser Datei Folgendes hinzu:

spring:
  profiles:
    active: dev, pro, xxx...

alle Profile, die Sie aktivieren möchten.

So bearbeiten Sie diese Datei, um die Umgebung zu wechseln.

Denken Sie daran, dass externe Dateien eine Prozedur ausführen, sodass Sie einen anderen application.xml außerhalb der WAR-Datenbank hinterlassen können, um die dev/pro/... -Umgebung zu aktivieren, anstatt diese Datei jedes Mal zu bearbeiten. Überprüfen Sie unbedingt die Dokumentation:

https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-external-config.html

0
WesternGun