Quarkus 2.16中如何用环境变量修改@ConfigMapping中的map配置?
可以通过环境变量修改@ConfigMapping中的map配置
完全可以实现,Quarkus的配置系统支持用环境变量覆盖@ConfigMapping定义的map类型属性,遵循和普通属性一致的命名转换规则:
配置映射与application.properties示例
假设你定义了如下的ConfigMapping接口:@ConfigMapping(prefix = "application") public interface AppConfig { // 定义一个map类型的配置项 Map<String, String> folderMap(); }对应的application.properties中可以配置默认值:
application.folder-map.doc=default-doc-folder application.folder-map.data=default-data-folder用环境变量覆盖或新增map键值对
把属性名转换为全大写,将所有点(.)和连字符(-)替换为下划线(_),就可以用环境变量来修改:- 覆盖现有键:设置
APPLICATION_FOLDER_MAP_DOC=/new/doc/path,启动应用后folderMap中doc的值会被替换为/new/doc/path - 新增键值对:设置
APPLICATION_FOLDER_MAP_LOG=/new/log/path,应用启动后folderMap会新增log=/new/log/path的条目
- 覆盖现有键:设置
和你现有用法的结合
和你平时用application.folder=${FOLDER:folder}的方式类似,也可以在application.properties中给map的键设置环境变量占位符:application.folder-map.doc=${FOLDER_DOC:default-doc-folder} application.folder-map.data=${FOLDER_DATA:default-data-folder}这样只需设置
FOLDER_DOC或FOLDER_DATA环境变量,就能单独修改对应map项的默认值,无需改动配置文件。
内容的提问来源于stack exchange,提问作者Brian Hesselmann
相关产品推荐
相关产品推荐

