2016-11-13 2 views
0

Ich habe eine Spring Boot-Anwendung, die ich mit Anmerkungen konfigurieren. Ich habe application.properties und application- {profile} .properties Dateien bereits mit Daten darin. Problem ist nun, ich möchte einen WAR-externen Speicherort auf dem Tomcat 6 Server definieren, wo ich die Konfigurationsdateien setzen kann, die Vorrang haben. Das heißt, alle Einstellungen, die ich in diese Eigenschaftendateien einfüge, sollten alle Werte in application.properties oder application {project} .properties übertrumpfen.Wie füge ich den Speicherort der externen Eigenschaftendatei zur Spring Boot-Anwendung hinzu, die auf Tomcat 6 bereitgestellt wird?

Wie kann ich dies auf die einfachste Weise erreichen?

Ich habe bereits versucht, @PropertySources hinzufügen, aber das hat eine niedrigere Priorität in der Reihenfolge der Eigenschaften Dateien, so dass es keine mögliche Lösung ist. Kann ich den Ladevorgang der Eigenschaftendatei leicht ändern?

Es ist nicht möglich, dem Server Umgebungsvariablen hinzuzufügen, da sich dies auf andere bereitgestellte Anwendungen auswirken kann. Die WAR-Datei muss eigenständig sein und alles liefern, was sie benötigt (außer diese externe Eigenschaft überschreibt die Datei).

+0

Sie stellen Ihre App also auf einem Tomcat 6-Server bereit? Warum benutzt du Spring-Boot? –

+0

Weil es 2016 ist? :) Wahrscheinlich wird der Tomcat-Server in naher Zukunft aktualisiert werden. Aber ich brauche jetzt eine Lösung. –

+0

Nur Spring Boot, weil es 2016 ist, ist kein Grund. Der Spring Boot dient im Grunde dazu, eine komplette Umgebung mit integriertem Server zu verkabeln. Warum benutzt man also einen zusätzlichen Tomcat 6? –

Antwort

1

Sie könnten spring.config.locationas described in the doc konfigurieren oder Sie könnten eine EnvironmentPostProcessor implementieren, wenn Sie möchten, dass dies unabhängig davon gilt.

Es gibt ein Beispiel in diesem university session at Devoxx wo we showcase how to read a file from the home directory und fügen Sie es nach Befehlszeileneigenschaften hinzu. Sie könnten so ziemlich das Gleiche machen und sie so bestellen, wie Sie wollen.

Die Beispiel-App ist available here, wenn Sie das versuchen möchten.

+0

spring.config.location kann nur mit einer Umgebungsvariablen (nicht verwendbar, wie oben erklärt) oder einem Eingabeparameter geändert werden, was meiner Meinung nach nicht für Tomcat gilt (ich könnte falsch liegen). –

+0

Aber postProcessEnvironment klingt vielversprechend. Ich untersuche es. –

+0

Mit Blick auf das Beispiel war es einfach genug, meine eigene Eigenschaftendatei einzufügen, falls vorhanden. Vielen Dank! –

Verwandte Themen