私は同様の質問をしましたが、回答に基づいて、私が求めているものを説明するのに悪い仕事をしました. プロパティ ファイルからプロパティを読み込む spring 4 webapp があります。これらのプロパティは、Spring の "${proper.name"} 式を介して、またいくつかのクラスにプロパティ オブジェクトを注入することによって消費します。
ほとんどのプロパティをデータベース テーブルに移動し、再読み込みできるようにします。ただし、いくつかはローカル プロパティにとどまる必要があり、データベース設定をオーバーライドする可能性があります。これらも、アプリの実行後に動的にロードする必要があります。
特定の Bean が注入されると、再ロードされないことはわかっていますが、それは私には関係ありません。それを処理するのはそのモジュール次第です。しかし、私は自分が望む行動を得るのに苦労しています。特に、デュアルソースとオーバーライドを取得するために、apache commons 構成から AbstractConfiguration を実装しました。ただし、プロパティ オブジェクトの注入には機能しますが、「${prop.name}」でロードされた式はまったく機能しません。
それらを機能させるにはどうすればよいですか?間違ったことをオーバーライドしましたか?それは単なる設定の詳細ですか?
<bean id="sysProperties" class="org.springframework.beans.factory.config.MethodInvokingFactoryBean">
<property name="targetObject" ref="databaseConfigurator" />
<property name="targetMethod" value="getProperties"/>
</bean>
<bean id="databaseConfigurator" class="my.util.config.MyDatabaseConfigurator">
<property name="datasource" ref="dataSource" />
<property name="propertyFile" value="/WEB-INF/my.properties" />
<property name="applicationName" value="ThisApp" />
</bean>
<bean id="dbConfigFactory" class="org.apache.commons.configuration.ConfigurationConverter" factory-method="getProperties">
<constructor-arg ref="databaseConfigurator" />
</bean>