对于我的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扩展吗?
声明这样的配置
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