如何为自定义Quarkus ConfigProperties使用配置映射

问题描述 投票:1回答:1

对于我的Quarkus应用程序,我正在寻找一种从自定义ConfigProperties类中定义配置映射的方法。我尝试了以下方法:

import io.quarkus.arc.config.ConfigProperties;
import io.quarkus.runtime.annotations.ConfigItem;

@ConfigProperties(prefix = "my-properties")
public class MyPropertiesConfiguration { 

    @ConfigItem
    public Map<String, FooConfiguration> foo;

    // ...
}
import io.quarkus.runtime.annotations.ConfigGroup;
import io.quarkus.runtime.annotations.ConfigItem;

@ConfigGroup
public class FooConfiguration {

  @ConfigItem
  public String myProperty;
}

给出这两个类和以下application.properties文件...

my-properties.foo.anystring.my-property=bar

启动时,应用程序失败,并显示错误消息:javax.enterprise.inject.spi.DeploymentException: No config value of type [java.util.Map] exists for: my-properties.foo

据我所知https://quarkus.io/guides/writing-extensions#configuration-maps,该示例应正常工作。我究竟做错了什么?可能会发生这种功能仅限于Quarkus扩展吗?

java properties-file quarkus microprofile
1个回答
0
投票

声明这样的配置

import io.quarkus.arc.config.ConfigProperties;

@ConfigProperties(prefix = "myapp")
public class AppSpecificConfig {

    public String property;

}

application.properties文件将包含

myapp.property=foo

然后您可以在应用程序中的任何位置@Inject此类的实例。

有关更多详细信息,请参见https://quarkus.io/guides/config#using-configproperties

© www.soinside.com 2019 - 2024. All rights reserved.