属性文件更改时的 Apache Commons 配置触发事件

Sor*_*tis 2 java apache-commons-config

我正在使用 Apache Commons 配置库来存储我的应用程序属性。我可以使用它来监视属性文件的更改FileChangedReloadingStrategy,并且它工作得很好。我想做的是在属性文件更改时触发configurationChanged事件。ConfigurationListener

如果我尝试从我的代码中获取属性,则这种情况有效

directory = MyConfiguration.getInstance().getString("directory");
Run Code Online (Sandbox Code Playgroud)

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

谢谢。

ZZ *_*der 5

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

对于我的应用程序来说,这是更理想的,因为我不关心文件更改,直到我需要使用它。

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

  • 谢谢你的提示。实际上我只需要添加一个计时器任务,该任务只会从配置文件中获取属性,此操作将自动触发 FileChangedReloadingStrategy+ConfigurationListener。 (2认同)