別のファイルタイプ(Springの構成以外)でSpringをプレースホルダーに置き換えます

StackOverflow https://stackoverflow.com/questions/3914971

質問

そうでないファイルにスプリング(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ファイルです)。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top