【发布时间】:2017-08-11 06:48:57
【问题描述】:
我正在开发一个 Spring 应用程序,我需要访问保存在文件夹中的所有属性文件。我尝试了ReloadingCombinedConfigurationBuilder 方法,但配置只更新一次,然后不会出现进一步的文件更改。这是我正在使用的代码:
ReloadingCombinedConfigurationBuilder combinedBuilder = new ReloadingCombinedConfigurationBuilder()
.configure(params.fileBased().setFile(new File("configuration.xml")));
这是我的 configuration.xml:
<?xml version="1.0" encoding="ISO-8859-1" ?>
<configuration>
<properties fileName="{absolute-path}/a.properties" config-reload="true" reloadingRefreshDelay="10000"/>
<properties fileName="{absolute-path}/b.properties" config-reload="true"/>
</configuration>
然后我以编程方式添加几个属性配置。如果我没有以编程方式添加配置,则在设置触发器时,combinedBuilder.getReloadingController() 返回 null。
Configuration config = builder.getConfiguration();
combinedBuilder.getConfiguration().addConfiguration(myFileBasedConfigurationBuilderconfig.getConfiguration());
并启动触发器:
PeriodicReloadingTrigger trigger = new PeriodicReloadingTrigger(
combinedBuilder.getReloadingController(), null, 5, TimeUnit.SECONDS);
trigger.start();
当我执行它并更改属性文件时,更改会反映一次,然后它会停止提供更改的值。
欢迎提出建议。
【问题讨论】:
标签: java spring apache-commons-config