2017-01-23 3 views
6

Ich habe einen Spring-Cloud-Server für meine Anwendungen erhalten, der die Common-Property-Dateien beim Start bereitstellt.Spring cloud config - Laden zusätzlicher Dateien

Die "normale" Funktionalität funktioniert einwandfrei. Eine Anwendung ruft die Hierarchie der Dateien ab und erhält vollen Zugriff auf die geladenen Parameter.

Application.properties 
Application-<profile>.properties 
<applicationname>.properties 
... 

Nun ist die Frage: Wie kann ich eine Konfigurationsdatei neben der gemeinsamen Namensgebung laden?

Wenn ich eine andere Datei in Repositoy z. sharedCommonServers.properties, wie kann ich diese Datei zusätzlich über den Konfigurationsserver laden? Diese Datei enthält Eigenschaften, die von einigen, aber nicht allen Programmen verwendet werden.

Vielen Dank im Voraus!

Hendrik

+0

'@PropertySource (" Klassenpfad: sharedCommonServers.properties ")', fügen Sie es einfach zu Ihrer Anwendungsklasse hinzu. –

+0

Die Datei sharedCommonServers.properties sollte mithilfe des Cloud-Konfigurationsservers geladen werden. Ich habe deine Leitung zur Konfiguration hinzugefügt, aber sie scheint sie nicht zu laden. Ist es richtig, würde diese Zeile die Datei nur vom lokalen Speicher laden, oder sollte sie auch den Konfigurationsserver benutzen? –

+0

Siehe [diese Antwort] (http://stackoverflow.com/a/41374808/390513), es sollte hilfreich sein. – Kane

Antwort

4

Ok, zumindest fand ich eine Lösung:

Ich nahm den normalen Anwendungskontext von Cloud-Konfiguration. In diesem Kontext habe ich meine Datei sharedCommonServers.properties als Standard-Anwendungseigenschaftsdatei mit einem speziellen Profil platziert.

Umbenennung:

'sharedCommonServers.properties' to 'application-commonServers.properties' 

durch die Profileinstellungen erstreckt, um mit 'commonServers' Federwolke Config ist es zusätzlich zu holen.

Achten Sie darauf, dass sich in der anderen Profilzeile keine überlappenden Eigenschaftsschlüssel befinden.

in meiner Umgebung Also, wenn ich gesetzt ...

-Dspring.profiles.active=prod,commonServers' 

... ich meine Standard-prod Konfiguration und solche gekennzeichnet als "commonServers Profile.

application.properties 
application-prod.properties 
application-commonServers.properties // the additional one 
<appname>.properties 
<appname>-prod.properties 
// and <appname>-commonServers.properties if I would need it 

Vielen Dank für Ihre Anregungen und Gedanken!

Verwandte Themen