java正在读取配置文件,其中包含Quarkus中的属性映射
Myapplication.yaml
有一个存储在yaml文件中的值映射
app:
myMap:
key1: value1
key2: value2
key3: value3
配置类:
@Data
@ApplicationScoped
public class AppConfiguration {
@ConfigProperty(name = "app.myMap")
private Map<String, String> myMap;
}
这将导致以下错误:
javax.enterprise.inject.spi.DeploymentException: No config value of type [java.util.Map] exists for: app.myMap
我无法读取这些值,因为该文件不支持java.util.Map
。我遇到this mailing list这建议了一种解决方法,但对于Quarkus来说是相当新的,我不确定如何正确地实现这一点。它也有一年了,我想知道是否有比邮件列表中建议的更好的实现
# 1 楼答案
是的,现在确实有更好的办法。Quarkus配置由SmallRye配置实现。不幸的是,它不支持直接映射直接注入,但您可以使用一个映射对象,如本文所述:https://smallrye.io/docs/smallrye-config/main/mapping/mapping.html
以下是一个示例项目: https://github.com/smallrye/smallrye-config/tree/main/examples/mapping
所有这些都在Quarkus中起作用