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 的配置中使用加密 Cassandra 密码凭据?