Quarkus是否自动转换.env环境变量适配dev配置的@ConfigProperty引用?
关于Quarkus配置从application.properties迁移到.env的问题
1. Quarkus是否会自动将_DEV_EXAMPLE_VARIABLE映射为%dev.example.variable?
不会。Quarkus的环境变量到配置键的映射遵循固定规则:
- 环境变量默认需以
QUARKUS_为前缀(可通过配置自定义,但默认遵循此规则) - 前缀后的部分会被转换:大写转小写,下划线替换为点
- 针对Profile特定的配置,环境变量格式为
QUARKUS_<PROFILE>_<PROPERTY>,对应配置键%<profile>.<property>
你当前定义的_DEV_EXAMPLE_VARIABLE不符合上述规则,Quarkus无法将其识别为%dev.example.variable对应的环境变量。
2. 是否需要修改代码中的@ConfigProperty引用?
不需要。你只需要将.env文件中的变量改为正确格式:
QUARKUS_DEV_EXAMPLE_VARIABLE=somevalue
Quarkus会自动将其映射为%dev.example.variable,代码中原有的@ConfigProperty(name = "%dev.example.variable")可以直接读取到值,无需修改。
3. 在.env文件中使用%dev命名规则是否合理?
不合理。.env文件存储的是系统环境变量,必须遵循环境变量命名规范:仅允许包含大写字母、数字和下划线,不能使用%、点号这类特殊字符。即使在.env中写入%dev.example.variable=somevalue,Quarkus也无法正确识别为Profile特定配置,甚至可能导致读取失败。
内容的提问来源于stack exchange,提问作者user30417967
相关产品推荐
相关产品推荐

