OpenLiberty MP 配置示例 getProperties() 重复调用

OpenLiberty MP Config Sample getProperties() repetitive called

我尝试了 OpenLiberty MP Config Sample (guide-microprofile-config),到目前为止它是有效的。但是当更仔细地分析它时,我发现该方法 文件 CustomConfigSource 中的 getProperties() 被重复调用多次。这是我没想到的行为。 在文件 InventoryConfig 中有静态和动态注入的变量(通过使用 "Provider<>")。但是只有在我调用 REST 服务时才应调用此代码。所以我的问题是什么一直触发 getProperties() ?我该如何预防呢。 实际上,在我的实现中,我想访问数据库并进行查询,我想将逻辑放入 getProperties() 中,现在看来这是个坏主意。

此致 伊戈尔

在 OpenLiberty 中,用户提供的 ConfigSources 是动态的,因此系统 re-reads 它们是定期的。可以通过设置名为 microprofile.config.refresh.rate 的系统 属性 来调整默认刷新间隔。该值以毫秒为单位。如果将其设置为零,则它根本不会刷新。有关详细信息,请参阅此处(查找标题为 "Dynamic property values" 的部分):

https://www.ibm.com/support/knowledgecenter/en/SSEQTP_liberty/com.ibm.websphere.wlp.doc/ae/cwlp_microprofile_overview.html

如果您想对未来的 MicroProfile Config 版本发表评论或做出贡献,请参与 https://github.com/eclipse/microprofile-config/

顺便说一下,上述行为是 Open Liberty 的实现细节。当前的 MicroProfile Config 规范没有强制要求处理动态配置源的方法。即将发布的 MicroProfile Config 版本将解决这个问题。