在 SpEL 中,带有列表的地图的格式应该是什么样的
What should the format of a map with list look like in SpEL
我正在尝试在 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
中读取列表地图的好方法吗?
试试这个:
@Value("#{${map-of-lists}}")
private Map<String, List<String>> mapOfLists;
application.properties
map-of-lists={'KEY1':{'value1','value2'}, 'KEY2':{'value1','value2'}}
在application.yml的情况下应该是:
map-of-lists: "{'KEY1':{'value1','value2'}, 'KEY2':{'value1','value2'}}"
经过大量查找和调试后,下面的工作正常。我必须为 ,
添加转义字符,这就完成了
map-of-lists={KEY1:{value1\,value2}\,KEY2:{value3\,value4}\,KEY3:{value5}}
这以后可以读作
@Value("#{${map-of-lists}}") final Map<String, List<String>> mapOfLists
我正在尝试在 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
中读取列表地图的好方法吗?
试试这个:
@Value("#{${map-of-lists}}")
private Map<String, List<String>> mapOfLists;
application.properties
map-of-lists={'KEY1':{'value1','value2'}, 'KEY2':{'value1','value2'}}
在application.yml的情况下应该是:
map-of-lists: "{'KEY1':{'value1','value2'}, 'KEY2':{'value1','value2'}}"
经过大量查找和调试后,下面的工作正常。我必须为 ,
添加转义字符,这就完成了
map-of-lists={KEY1:{value1\,value2}\,KEY2:{value3\,value4}\,KEY3:{value5}}
这以后可以读作
@Value("#{${map-of-lists}}") final Map<String, List<String>> mapOfLists