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
我无法读取这些值,因为 MicroProfile 不支持java.util.Map
. 我遇到了这个邮件列表,它提出了一种解决方法,但对 Quarkus 来说相当新,我不确定如何正确实施。它也有一年了,我想知道是否有比邮件列表中建议的更好的实现。
解决方案
是的,现在确实有更好的方法。Quarkus 配置由 SmallRye Config 实现。不幸的是,它不直接支持 Map 直接注入,但您可以使用此处记录的映射对象:https ://smallrye.io/docs/smallrye-config/main/mapping/mapping.html
这是一个示例项目: https ://github.com/smallrye/smallrye-config/tree/main/examples/mapping
所有这些都在 Quarkus 中工作。
推荐阅读
- php - 当产品 A 加入购物车时,针对特定产品也将产品 B 加入购物车 5 次
- reactjs - 如何使用 React 和 NGINX 实现导航?
- javascript - 表单提交后清空输入字段/值
- php - 试图在 fetch_assoc PHP、MYSQLI 中执行 fetch_assoc
- typescript - 添加redux-persist后,我无法再获取redux store的状态
- javascript - 尝试在 Redux 中保留一些数据时出现“未捕获的 TypeError:e 不是函数”
- node.js - 无法在 express 中的 req.session 中设置 userId?
- reactjs - React Native Rainbow-me/Charts 绑定
- python - 具有动态属性名称的类的类型注释
- python - Windows 终端错误,pyinstaller 无法识别?