Was ich lösen möchte, ist wie der Titel sagt. Beim Spring-Boot werden DB-Verbindungsinformationen usw. häufig in application.properties unter src / main / resources geschrieben. Ich werde jedoch erläutern, wie diese Datei extern abgelegt und mit einer anderen Definition als der zur Kompilierungszeit betrieben wird. Ich werde. Zuvor habe ich "Verwendung von Maven zum Platzieren von Ressourcendateien außerhalb von JAR" veröffentlicht, aber es ist die Spring-Boot-Version davon. ..
Mit Spring-Boot ist das ganz einfach. Platzieren Sie einfach die Ressourcendatei (application.properties usw.), die Sie extern ablegen möchten, in einem separaten Ordner und geben Sie sie zur Laufzeit als Klassenpfad an.
Wenn Sie also my-java-app.jar ausführen und application.properties in den Ordner external_resource laden möchten, fügen Sie den Ordner external_resource in Ihren Laufzeitklassenpfad ein.
Ordnerstruktur
my-java-app.jar
external_resource
└ application.properties
Befehl
java -classpath ./external_resource -jar my-java-app.jar
Der Grund für dieses Verhalten ist, dass Spring-Boot die folgenden Leseprioritäten für Ressourcendateien hat.
Tatsächlich gibt es eine detailliertere Definition der Leseprioritäten, wie andere unten erläutert haben.
Ich bin dankbar, dass Spring-Boot den juckenden Ort gut erreichen kann. Und danke an @niwasawa für die Übersetzung der offiziellen Dokumentation.
Recommended Posts