Quarkus如何在application.properties中设置环境变量

Posted

技术标签:

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

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

【问题讨论】:

【参考方案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

【讨论】:

以上是关于Quarkus如何在application.properties中设置环境变量的主要内容,如果未能解决你的问题,请参考以下文章

如何覆盖 Quarkus 中的属性?

如何在 Quarkus 的配置中使用加密 Cassandra 密码凭据?

Quarkus:如何在微服务之间进行身份验证?

Quarkus:集成测试 - 如何模拟 OIDC?

如何修复错误原因:java.net.BindException:地址已在使用:在 Quarkus 中绑定?

如何调试在开发模式下运行的 Quarkus 应用程序?