You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring中如何使用@Value从YAML读取Map列表?

读取Map列表的可行方案

你尝试的List<Map<String, String>>写法是可行的,数组写法虽语法上能通过,但Spring对集合类型的支持更友好,推荐用List实现。具体步骤如下:

1. 修改YAML配置

将配置值改为SpEL可解析的列表格式,用[]包裹多个Map的{}结构:

valuesMap: "[{path:'/a', ext:'csv', ttl:50}, {path:'/b', ext:'txt', ttl:30}]"

如果需要统一value为字符串类型,可给数字值加引号:

valuesMap: "[{path:'/a', ext:'csv', ttl:'50'}, {path:'/b', ext:'txt', ttl:'30'}]"

2. 编写Java代码

直接使用List<Map<String, String>>配合@Value注解即可:

@Value("#{${valuesMap}}")
private List<Map<String, String>> valuesMap;

注意事项

  • 数组写法Map<String, String> valuesMap[]虽能解析,但后续操作集合时不如List灵活,不推荐使用。
  • 若Map的value需要非字符串类型(比如ttl要Integer),可将泛型改为Map<String, Object>或Map<String, Integer>,Spring会自动完成类型转换。

内容的提问来源于stack exchange,提问作者Alberto Pires

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 00:25:30