2017-06-26 5 views
0

Ich verwende Spring, um eine Java-Anwendung zu entwickeln. Ich habe bestimmte Eigenschaften in einer Eigenschaftendatei gespeichert, die als JAR verpackt ist. Die Eigenschaften werden mit @Value Annotation in Code eingelesen. Jetzt, wenn ich die JAR bereitstellen, möchte ich neue Werte für einige dieser Eigenschaften liefern. Ich weiß, dass wir den neuen Eigenschaftswert als "-Dproperty-name = Eigenschaftswert" angeben können. Aber gibt es eine Möglichkeit, eine neue Eigenschaftsdatei selbst als Eingabe zu geben, die viele Eigenschaften aufweist, die zusammen überschrieben werden müssen?Spring: So geben Sie die Eigenschaftendatei an Java.exe

Dank Chenbaga

Antwort

0

Sie können eine Reihe von verschiedenen Eigenschaftsdateien und dann mit einem bestimmten Systemparameter laden dann.

@Configuration 
@PropertySource(value = {"classpath:/app.properties", "file:/${configLocation}/app.properties"}, ignoreResourceNotFound = true) 

public class AppConfig { 

Fügen Sie Ihre Standard app.properties zu /src/resources/app.properties

Dann, wenn Sie Ihre JVM starten Sie mit

-DconfigLocation=/home/config 

außer Kraft setzen kann, wenn die configLocation vorhanden ist, es wird Nehmen Sie zuerst die Standardeigenschaften auf und überschreiben Sie sie dann mit den aus der Datei. Wenn der Systemparameter nicht vorhanden ist, wird die Datei nicht gespeichert und die Standardeinstellungen verwendet.

Siehe http://docs.spring.io/spring/docs/4.3.9.RELEASE/javadoc-api/org/springframework/context/annotation/PropertySource.html für weitere Beispiele

+0

Dank Essec. Das mache ich jetzt. Aber ich muss einige dieser Eigenschaftswerte überschreiben, wenn ich das JAR ausführe. Ich möchte all diese Eigenschaften in eine Datei schreiben und diese Datei als Eingabe für JVM angeben, anstatt jede Eigenschaft als -D anzugeben, wenn JAR ausgeführt wird. –

+0

@ChenbagaMurugan Ich habe deine Frage nicht verstanden, sieh dir jetzt die Antwort an. Das sind auch viele Beispiele dafür auf der Feder Link. –

Verwandte Themen