【问题标题】:Java Microprofile change properties on already deployed app (Wildfly)已部署应用程序 (Wildfly) 上的 Java Microprofile 更改属性
【发布时间】:2021-09-04 20:30:27
【问题描述】:

我在 Wildfly 服务器上部署了一个 ear artifact。在一些 bean 上,我使用了以下配置注入

@Inject
private Config config;

我想在运行时更改“microprofile-config.properties”文件中指定的属性。不需要更改文件本身,我只想更改属性。我认为可能有一种使用控制台的方法,但我找不到。

【问题讨论】:

    标签: java jakarta-ee wildfly config microprofile


    【解决方案1】:

    如果您查看spec 甚至是this 之类的文章,您会发现,默认情况下,Microprofile config 按此顺序从以下 3 个位置读取配置值 - 即从找到它的任何位置第一:

    1. System.getProperties()
    2. System.getenv()
    3. 配置文件

    因此,您可以通过两种方式覆盖配置文件中的值:

    1. 为 VM 定义 -D 命令行参数(例如 java -DXXX=yyy ...
    2. 定义系统环境变量(例如 bash 中的 export XXX=yyy 或 Windows 中的 set XXX=yyy

    请注意,定义环境变量并将它们与实际配置匹配有一些规则,例如对于配置aaa.bbb.ccc,您可能需要将环境变量设置为AAA_BBB_CCC。阅读 ch。 5.3.1 在规范中,并进行一些实验。

    您始终可以使用自己的自定义源扩展配置源(从 JNDI、DB、Zookeeper 等读取配置)。

    【讨论】:

    • 谢谢,这解决了一些问题。我对“aaa.bbb”样式配置值感到困惑,因为这就是我们使用的。我现在可能无法尝试这个,因为我们正处于紧缩状态。看起来这就是答案。
    猜你喜欢
    • 2017-04-22
    • 1970-01-01
    • 2015-07-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-23
    • 2016-09-25
    • 1970-01-01
    相关资源
    最近更新 更多