別のファイルタイプ(Springの構成以外)でSpringをプレースホルダーに置き換えます
-
29-09-2019 - |
質問
そうでないファイルにスプリング(v.3.0)を解析する方法はありますか .properties
?私は自分で書くことができることを知っています PropertyPlaceholderConfigurer
しかし、私はそれを行うための「よりクリーンな」方法を探していました。
編集:
より具体的には、私が実際にやりたいことは、に存在するプレースホルダーを置き換えることです .sql
ファイル。そのため、プレースホルダーの値は保存されます .properties
しかし、プレースホルダーはで使用されます .sql
ファイル。
解決
a PropertyPlaceholderConfigurer
Beanは、他のBean定義のプレースホルダーを置き換えます。具体的には、豆が実際に作成される前に、豆の定義の豆の特性の値を更新します。したがって、使用したい場合 PropertyPlaceholderConfigurer
SQLを変更するには、そのSQLをBeanプロパティ値に埋め込む必要があります。このクラスは、任意のファイルのプロパティを置き換えることはできません。
任意のファイルでプレースホルダーを交換する場合、 PropertyPlaceholderHelper
クラスはより良い賭けです。たとえば、メソッド
String replacePlaceholders(String value, Properties properties)
プレースホルダーを置き換えます value
プロパティから properties
書き換えられた文字列を返します。これを簡単に適応 /ラップして、ファイル内のプレースホルダーを置き換えることができます。
他のヒント
PropertyPlaceholderConfigurer
任意のものを提供できます Properties
オブジェクト(経由 properties
財産)。
Mavenを使用しているかどうかはわかりませんが、もしそうなら、私は使用します リソースフィルタリング 展開時間にプロパティをSQLファイルに挿入するには(ANTにも同様のソリューションがあります)、Springを許可します PropertyPlaceholderConfigurer
実行時に同じプロパティファイルを使用します。そうすれば、すべてが属する場所です(結局のところ、プロパティに最適な場所は.propertiesファイルです)。