问题描述
我正在尝试使用SPeL解析字符串列表。 Param是使用命令行参数指定的,而不是.properties文件。当我在String文字中不使用空格字符时,一切正常,但是当我这样做时,我得到了一个解析异常。
编辑:我正在使用Spring Boot 2.2.9.RELEASE
带有@Value
批注的列表:
@Value("#{${param}}")
private List<List<String>> param;
指定为命令行参数的属性不起作用:
--param={{'With Space','b'},{'x','y'}}
结果异常:
Caused by: org.springframework.expression.ParseException: Expression [#{{{'With}] @4: Found non terminating string literal starting at position 4
这确实有效:
--param={{'WithoutSpace','y'}}
是否可以使用包含空格字符的String元素解析此类List?
解决方法
命令行参数应为:
--param="{{'With Space','b'},{'x','y'}}"
要正确解析!请注意,在"
之后并在末尾的--param值周围加上引号=
。