无法将自定义 application.yml 配置的子集加载到 Quarkus 中的地图

Posted

技术标签:

【中文标题】无法将自定义 application.yml 配置的子集加载到 Quarkus 中的地图【英文标题】:Trouble loading a subset of custom application.yml configurations to a Map in Quarkus 【发布时间】:2020-06-11 19:32:00 【问题描述】:

我正在尝试使用 quarkus yaml 扩展作为我的主要配置来源,并试图找出从 yaml 文件加载地图的最佳方法。

application.yml:

quarkus:
  http:
    port: 8080
configuration:
  value:
    name1: test1
    name2: test2
    name3: test3

在代码中,我尝试像这样注入配置值:

@ConfigProperty(name = "configuration.value")
Values value;

其中 Values 包含一个自定义 Eclipse Microprofile 转换器。转换器如下所示:

public class ValueConverter implements Converter<Values> 
    @Override
    public Values convert(String value) 
        // Here there would be the actual code to convert to Map.
        return new Values(map);
    

问题是String value 是空的,即它没有加载下面的stull configuration.value:

name1: test1
name2: test2
name3: test3

我也尝试过用@ConfigProperties(prefix = "configuration.value") 注释一个类并在里面有一个映射,但是它不知道如何按预期将其映射到Map... 有没有办法创建自定义配置属性转换器?

这是 Eclipse Microprofile 问题吗?这是一个错误吗?这是功能要求吗? :) 或者,还有其他/更好的方法吗?

感谢您的帮助!

【问题讨论】:

【参考方案1】:

正如已在邮件列表 here 上回答的那样,Eclipse MicroProfile Config 不支持此功能,因此 Quarkus 也不支持

【讨论】:

以上是关于无法将自定义 application.yml 配置的子集加载到 Quarkus 中的地图的主要内容,如果未能解决你的问题,请参考以下文章

无法从 Spring Boot 应用程序中的自定义 yml 文件加载配置

无法从 Java Spring Boot 项目中的 application.yml 文件中读取用户定义类的列表

微服务之springboot 自定义配置Application.properties文件

IDEA开发spring boot应用时 application.yml 或 application.properties 自定义属性提示

在 application.yml 中定义基本安全用户、密码和角色

spring boot 读取 application.yml 中 List 类型数据