Wir bauen eine Spring-Boot-App, wir sind abhängig von einer JAR-Datei von 3rd-Party, erwartet eine Eigenschaftendatei mit hartcodierten Dateinamen (sagen xyz.properties) auf dem Klassenpfad, und liest seine Eigenschaften aus .Spring-Boot: Konfiguration verschiedener Versionen einer Eigenschaftendatei mit festem Dateinamen?
Wir müssen jedoch verschiedene Versionen dieser Eigenschaftendatei "einspielen", abhängig davon, in welcher Umgebung wir die JAR-Datei bereitstellen. Es wäre also wünschenswert, dem Klassenpfad ein Verzeichnis außerhalb der jar-Datei hinzuzufügen, wo wir die Eigenschaftendatei ablegen können.
Googeln, finde ich andere Leute mit ähnlichen Problem, , aber keine einfache, saubere Lösung dafür. Es scheint mir, das Federeigenschaften-Modell geht davon aus, dass Sie nur die Eigenschaftsnamen und ihre Werte (Abholung von System.getProperties()) interessieren und wirklich nicht kümmern, von welcher Eigenschaft-Datei jeder Wert kommt.
Dies kann in Ordnung sein, wenn Sie Ihren eigenen Code entlang dieses Modells erstellen, , aber passt möglicherweise nicht so gut, wenn Sie von Drittanbieterlösungen, wie unserem Anwendungsfall, abhängig sind.
Die einfachste Abhilfe, die ich gefunden ist, die Feder jar-Datei zu „explodieren“, kopieren gewünschte Eigenschaft-Dateien in WEB-INF/classes, dann mit dem JarLauncher starten.
Frage mich nur, ob es einen besseren Weg gibt, ohne dass man es "explodieren" muss?
Ist mein oben stehendes Verständnis korrekt, oder habe ich gerade ein Federelement übersehen, das diesen Anwendungsfall bereits unterstützt?
@ sodik ---- Hmmm, ja natürlich .... warum didnt denke ich an, dass ?? !! : D ---- wird es versuchen! – Rop
hat gut funktioniert, danke! :) ---- Saubere und einfache Lösung --- Sollte eigentlich als Option zum Spring-Dokument hinzugefügt werden: https://docs.spring.io/spring-boot/docs/current/reference/html/boot- features-external-config.html – Rop