0

私は同様の質問をしましたが、回答に基づいて、私が求めているものを説明するのに悪い仕事をしました. プロパティ ファイルからプロパティを読み込む 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> 
4

1 に答える 1

0

私はこれをテストしていませんが、うまくいくと思います。

<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 name="PropertyPlaceholderConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
    <property name="properties" ref="CommonsConfigurationFactoryBean"/>
</bean>

<bean name="CommonsConfigurationFactoryBean" class="org.springmodules.commons.configuration.CommonsConfigurationFactoryBean">
       <constructor-arg ref="databaseConfigurator"/>
</bean>
于 2016-03-08T16:06:00.100 に答える