Java 正在使用Quarkus中的属性映射读取配置文件
MyJava 正在使用Quarkus中的属性映射读取配置文件,java,yaml,quarkus,microprofile,Java,Yaml,Quarkus,Microprofile,Myapplication.yaml具有存储在yaml文件中的值映射 app: myMap: key1: value1 key2: value2 key3: value3 配置类: @Data @ApplicationScoped public class AppConfiguration { @ConfigProperty(name = "app.myMap") private Map<String, String>
application.yaml
具有存储在yaml文件中的值映射
app:
myMap:
key1: value1
key2: value2
key3: value3
配置类:
@Data
@ApplicationScoped
public class AppConfiguration {
@ConfigProperty(name = "app.myMap")
private Map<String, String> myMap;
}
@数据
@适用范围
公共类应用程序配置{
@ConfigProperty(name=“app.myMap”)
私人地图myMap;
}
这将导致以下错误:javax.enterprise.inject.spi.DeploymentException:app.myMap不存在[java.util.Map]类型的配置值
我无法读取这些值,因为该文件不支持java.util.Map
。我发现这建议了一种解决方法,但对于Quarkus来说是一种新的方法,我不确定如何正确地实现这一点。它也已经一年了,我想知道是否有比邮件列表中建议的更好的实现方式。是的,现在确实有更好的方式。Quarkus配置由SmallRye配置实现。不幸的是,它不支持映射直接注入,但您可以使用如下所述的映射对象:
以下是一个示例项目:
所有这些都在Quarkus中起作用