【问题标题】:Quarkus how to set environment variables in application.propertiesQuarkus如何在application.properties中设置环境变量
【发布时间】:2019-09-11 18:18:15
【问题描述】:

最近我从 thorntail 切换到 quarkus,我在试图找到如何在 thorntail 中的 application.properties 中设置环境变量时遇到了一些困难我使用了类似 ${env.HOST: localhost} 的东西,这基本上意味着放置环境变量,如果你不这样做'找不到任何将 localhost 作为默认值的东西,这对 quarkus application.properties 有可能吗?我在 GitHub 上没有发现任何问题或有人回答了这个问题?

【问题讨论】:

    标签: java postgresql environment-variables application.properties quarkus


    【解决方案1】:

    application.properties你可以使用:

    somename=${HOST:localhost}
    

    如果未设置HOST,它将正确扩展HOST 环境变量并使用localhost 作为默认值。

    【讨论】:

    • 它适用于最新版本的 Quarkus(我已经测试过 >= 1.1 的版本)
    • int 默认值怎么样,我们可以像本例那样使用 -1 吗? ``` quarkus.mailer.from=${SYSTEM_EMAIL:-} quarkus.mailer.port=${EMAIL_SERVER_PORT:-1} ``` 使用- 指定空字符串,默认整数为-1
    • 我不确定我是否理解您的问题。你能试着解释一下吗?
    • 我的意思是我使用默认值- 用于空字符串,-1 用于 int 初始值。这是正确的用法吗?在 Quarkus 文档中找不到任何关于此的最佳实践。
    • 您也可以将 Java 字段设为 Optional 而不必传递默认值
    【解决方案2】:

    或者,您不需要在 application.properties 中引用环境变量,只需直接在代码中引用变量:

    @ConfigProperty(name = "my.property", defaultValue = "default value")
    String myProperty;
    

    并使用 env 变量指定它,如下所示:

    export MY_PROPERTY="env var" && java -jar myapp.jar
    

    或者使用命令行定义-D

    java -Dmy.property="CL key" -jar myapp.jar
    

    请参考 Quarkus 配置指南https://quarkus.io/guides/config

    【讨论】:

      猜你喜欢
      • 2016-11-15
      • 2016-02-12
      • 2021-08-22
      • 2019-07-02
      • 2014-09-29
      • 2016-06-27
      • 2012-08-03
      • 2017-07-31
      相关资源
      最近更新 更多