Machen Frühling ersetzen Platzhalter in verschiedenen Dateitypen (außer Spring configs)
-
29-09-2019 - |
Frage
Gibt es eine Möglichkeit Feder (v.3.0) Parse-Platzhalter in Dateien zu machen, die nicht .properties
sind?
Ich weiß, ich kann meine eigenen PropertyPlaceholderConfigurer
schreiben, aber ich war für eine „sauberere“ Weg, um es zu tun.
EDIT:
Um genauer zu sein, was ich will eigentlich zu tun ist, Platzhalter-Dateien in .sql
zu ersetzen. So werden die Werte der Platzhalter in .properties
gespeichert sind, aber die Platzhalter werden in .sql
Dateien verwendet wird.
Lösung
Eine PropertyPlaceholderConfigurer
Bohne wird Platzhalter in anderen Bean Definitionen ersetzen. Insbesondere aktualisiert er die Werte der Bean-Eigenschaften in Bohne Definitionen ... bevor die Bohnen tatsächlich erstellt werden. Deshalb, wenn Sie PropertyPlaceholderConfigurer
verwenden wollte SQL zu ändern, müssten die SQL in Bean Eigenschaftswerte eingebettet werden. Diese Klasse kann nicht ersetzen Eigenschaften in beliebigen Dateien.
Andere Tipps
PropertyPlaceholderConfigurer
kann mit einem beliebigen Properties
Objekt geliefert werden (via properties
Eigenschaft).
Ich weiß nicht, ob Sie Maven, aber wenn Sie das tun, würde ich verwenden Ressource Filterung die Eigenschaften in die sQL-Dateien in deploy Zeit zu injizieren (es gibt ähnliche Lösungen für Ameise, auch) und Spring PropertyPlaceholderConfigurer
Verwendung der gleichen Eigenschaftsdateien zur Laufzeit lassen. Auf diese Weise ist alles, wo es hingehört (immerhin der beste Platz für Immobilien ist eine .properties-Datei).