Apache Commons Configuration会在属性文件更改时触发事件

时间:2010-04-28 16:13:42

标签: java apache-commons-config

我正在使用Apache Commons Configuration库来存储我的应用程序属性。 我可以使用FileChangedReloadingStrategy来监控属性文件的更改,并且它可以完美地运行。 我想要做的是在更改属性文件时触发configurationChanged事件ConfigurationListener

如果我尝试从我的代码

获取属性,则此案例有效
directory = MyConfiguration.getInstance().getString("directory");

此行将触发configurationChanged。但是,当FileChangedReloadingStrategy捕获文件中的更改而不进行冗余调用时,我需要触发此事件。

感谢。

2 个答案:

答案 0 :(得分:4)

FileChangedReloadingStrategy通过每次读取参数时检查文件修改时间来工作。如果您没有阅读任何内容,则不会调用Apache配置代码,因此无法向您发送通知。

对于我的应用程序,这是更理想的,因为在我需要使用它之前我不关心文件更改。

您可以编写新策略来完成您想要的任务。您需要启动一个新线程并定期监视该文件。

答案 1 :(得分:0)

正如上一张海报所提到的,你可以推行自己的策略。要监控文件的更改,您可以使用JPoller