我想通过这样的事情
tracing:
service: "test-service"
host: ${TRACING_AGENT_HOST}
port: ${PORT}
无论您使用的是 Helidon SE 还是 Helidon MP,配置源都是“堆叠的”并且属性标量是独立的。因此,如果您不指定:
tracing:
host:
……完全如此,如果您确保已安装环境变量读取配置源,那么它将从环境中读取。
您可以在此处阅读有关 Helidon SE 专有配置系统的更多信息:https ://helidon.io/docs/v2/#/se/config/01_introduction
您可以在此处阅读有关 MicroProfile 配置系统(Helidon MP 实现)的更多信息:https ://download.eclipse.org/microprofile/microprofile-3.3/microprofile-spec-3.3.html#mp-config
这application.yaml
就像一个静态属性文件。它不涉及变量替换。
仔细阅读https://helidon.io/docs/latest/#/mp/guides/03_config中默认配置的源优先级段落,并观察如何覆盖嵌入式配置文件中的属性。
在这种情况下,您可以通过向java命令行传递您期望的自定义变量来覆盖您想要的属性。
例如,您可以实现如下所述的目标:
tracing:
service: "test-service"
host: default-host-name
port: 8080
java -Dtracing.host=remote-hostname -Dtracing.port=8080 -jar your_artifact.jar
或者
export TRACING_HOST=remote-hostname
export TRACING_PORT=8080
java -jar your_artifact.jar