1

出于某种原因,ReloadablePropertiesFactoryBean 似乎并没有达到我的预期。当我更改 test.properties 文件中的属性时,我收到一条日志消息:

9979 [timer] INFO com.krest.core.properties.ReloadablePropertiesFactoryBean - Reloading Properties...

但由于某种原因,什么也没有发生。旧的属性值仍然在我的测试 bean 上设置。有人知道这是为什么吗?我使用 Spring 3,我的配置如下所示:

<bean id="configproperties"
    class="com.krest.core.properties.ReloadablePropertiesFactoryBean">
    <property name="location"
        value="classpath:test.properties" />
</bean>

<bean id="propertyConfigurer"
    class="com.krest.core.properties.ReloadingPropertyPlaceholderConfigurer">
    <property name="properties" ref="configproperties" />
    <property name="reloadingPlaceholderPrefix" value="rel{" />
    <property name="reloadingPlaceholderSuffix" value="}" />
</bean>

<bean id="mybean" class="nl.mycompany.TestBean">
    <property name="message" value="rel{timer-delay}" />
</bean>

<!-- regularly reload property files. -->
<bean id="timer" class="org.springframework.scheduling.timer.TimerFactoryBean">
    <property name="scheduledTimerTasks">
        <bean id="reloadProperties"
            class="org.springframework.scheduling.timer.ScheduledTimerTask">
            <property name="period" value="1000" />
            <property name="runnable">
                <bean class="com.krest.core.properties.ReloadConfiguration">
                    <property name="reconfigurableBeans">
                        <list>
                            <ref bean="configproperties" />
                        </list>
                    </property>
                </bean>
            </property>
        </bean>
    </property>
</bean>
4

0 回答 0