2016-04-19 12 views
2

Es gibt gemeinsame Eigenschaften, die unter verschiedenen Profilen für z. Die Pfadposition für temporäre Dateien und Pfade bleibt bei verschiedenen env (tst, prd) gleich.übergeordnete Eigenschaften für Anwendung - {Profil} .properties mit Spring-Boot-App

Gibt es eine Möglichkeit, eine übergeordnete Anwendung zu erstellen - {parent} .properties, von der alle profilspezifischen Eigenschaftendateien die Eigenschaften erben können.

Das bei der Vermeidung Schreiben gleichen Eigenschaften in allen applikations {Profil} helfen .properties

Darüber hinaus erhält jedes application-{profile}.properties haben so etwas wie:

profileLocation=xxx 
abc=${profileLocation}/tempPath 

Hier kann ich abc auf eine gemeinsame Position zu verschieben ? Ich kann nicht in application.properties wie es geladen wird, bevor anwendungs- {Profil} .properties

+1

Das ist, was die 'application.properties' für ... ist, die zuerst geladen wird dann das profilspezifische ... –

+0

das ist korrekt. Es funktioniert wie es ist. Danke M.Deinum – explorer

+0

Jetzt sind die Eigenschaften gleich, aber das Präfix ist profilspezifisch. z.B. $ {profilspezifische BasePfad}/tempLocation. Wie kann ich dies erreichen, da profilspezifische Eigenschaften später als application.properties geladen werden? – explorer

Antwort

0

Eigentlich, das nicht ganz richtig ist, dass application.properties vor allen anderen geladen werden. Sie werden zusammen verarbeitet. Um allgemeine Eigenschaften festzulegen, die von allen Profilen verwendet werden, sollten Sie die normale Datei application.properties verwenden. Zwei wichtige Dinge, die Sie wissen sollten, sind unten beschrieben.

Fall 1. Die Schlüssel, die innerhalb der application.properties Datei abgelegt werden, können durch Profil spezifische Konfiguration überschrieben werden.

common.path.for.all.envs=/some/path 
default.path=/another/path 

Als in Ihrem z.B. application-dev.properties Sie können einige Werte überschreiben.

default.path=/dev/path 

Zur Laufzeit mit dev Profil Ihre Anwendung den Zugriff auf zwei Tasten haben. Der Wert common.path.for.all.envs wird wie in der Hauptdatei angegeben auf /some/path festgelegt, und default.path wird auf /dev/path festgelegt, da Sie die Eigenschaft in der Profilkonfiguration überschreiben.

Fall 2. Die Werte definiert in den application.properties Datei Platzhalter für die Werte in Profilkonfigurationen enthalten können. Zum Beispiel in Ihrem application.properties die folgende Variable definieren:

abc=${profileLocation}/tempPath 

Als nächste in den application-dev.properties die fehlenden Variable deklarieren:

profileLocation=xxx 

Dann mit den laufen Entwicklerprofil Der Wert abc wird auf xxx/tempPath gesetzt. Wie Sie sehen, kann die in der Profilkonfiguration deklarierte Variable auch in der Hauptdatei application.properties verwendet werden.

+0

Das funktioniert. Danke @Daniel Olszewski – explorer

Verwandte Themen