【发布时间】:2021-12-20 13:19:56
【问题描述】:
我正在尝试在 spring 批处理应用程序中从 application.properties 读取列表映射
ExpressionParser parser = new SpelExpressionParser();
Map<String, List<String>> mapOfLists = (Map<String, List<String>>) parser.parseExpression("{'KEY1':{'value1','value2'},'KEY2':{'value3','value4'},'KEY3': {'value5'}}").getValue();
以上工作正常,但是当我在application.properties 中输入与map-of-lists={'KEY1':{'value1','value2'},'KEY2':{'value3','value4'},'KEY3': {'value5'}} 相同的值并尝试使用@Value("#{${map-of-lists}}") final Map<String, List<String>> mapOfLists 读取密钥时,spring 不高兴并且错误提示它找不到该值。
如果我将密钥和@Value 类型更新为Map<String, String>,则同样有效
我没有读到 spring 是如何解析值的,但是有没有办法做到这一点?
另外,@Value 是从application.properties 读取列表映射的好方法吗?
【问题讨论】: