Java 1.6 と Spring 3.1.1 を使用しています。外部プロパティ ファイルを Spring コンテキストに読み込もうとしています。問題点は次のとおりです。最初のプロパティ ファイルには、次のプロパティ ファイルへのパスが含まれています。例:
${user.home} の最初のプロパティ ファイル:
resource.dir=C:/users/smith
config.dir=${resource.dir}/configuration
2 番目のプロパティ ファイル ${config.dir} (最初のプロパティ ファイルで定義):
datasource.name=jdbc:mysql://dbserver:3306/test
datasource.prop1=etc
datasource.prop2=etc
したがって、最初のファイルを読み取り、それらのプロパティを処理し、それらを使用して 2 番目のファイルを取得する必要があります。
Spring PropertyPlaceholderConfigurer を使用すると、最初のファイルにしか到達しません。アプリのコンテキストで PropertyPlaceholderConfigurer を 1 つしか持てないことを読みましたが、それは本当のようです。[編集: 説明については、 https ://jira.springsource.org/browse/SPR-6428 を参照してください。]
これを行う最良の方法を知っている人はいますか?
編集: Ant でビルドを実行している場合、これは明らかに簡単です。残念ながら、私のプロジェクトでは Maven を使用しています。PROPERTY タグを使用して最初のステップを実行すると、次のステップのためにすべてが「自動的に」解析され、クラスパスを ${cfg.dir} ディレクトリなどに設定できるようになります。これらのディレクトリ。SpringまたはMavenで同じ機能を使用できることを望んでいましたが、まだ答えが見つかりません...
ANT の例:
<property file="${user.home}/global.properties" />
<target name="run-some-stuff">
<java classname="com.mystuff.App" failonerror="true" fork="yes">
<classpath>
<path location="${cfg.dir}" />
<path location="${resource.dir}" />
</classpath>
</java>
</target>