【问题标题】:Apache Commons Configuration trigger event on property file change属性文件更改时的 Apache Commons Configuration 触发事件
【发布时间】:2023-03-16 09:45:01
【问题描述】:

我正在使用 Apache Commons 配置库来存储我的应用程序属性。 我可以使用FileChangedReloadingStrategy 监控属性文件的更改,并且效果很好。 我想做的是在更改属性文件时触发ConfigurationListenerconfigurationChanged 事件。

如果我尝试从我的代码中获取属性,则此案例有效

directory = MyConfiguration.getInstance().getString("directory");

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

谢谢。

【问题讨论】:

    标签: java apache-commons-config


    【解决方案1】:

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

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

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

    【讨论】:

    • 感谢您的提示。其实我只需要添加一个定时器任务,它只会从配置文件中获取一个属性,这个动作会自动触发 FileChangedReloadingStrategy+ConfigurationListener。
    【解决方案2】:

    正如之前的海报所提到的,您可以推出自己的策略。要监控文件的更改,您可以使用JPoller

    【讨论】:

      猜你喜欢
      • 2011-06-01
      • 1970-01-01
      • 2011-02-08
      • 1970-01-01
      • 2012-06-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多