Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring 将PropertyPlaceHolderConfigure与列表一起使用_Spring - Fatal编程技术网

Spring 将PropertyPlaceHolderConfigure与列表一起使用

Spring 将PropertyPlaceHolderConfigure与列表一起使用,spring,Spring,我正在使用PropertyPlaceHolderConfigure从属性文件映射字符串值,它工作正常 我的问题是,我是否可以在我的属性文件中设置以下内容: myList=A、B、C 然后将其映射到一个列表 @Value("${myList}") private List<String> myList; @Value(“${myList}”) 私人名单; 当我尝试这样做时,它会将所有值放在列表的一个位置。 有没有办法告诉它通过“,”将其拆分为一个列表?请查看上的第6.5.3节(内联

我正在使用PropertyPlaceHolderConfigure从属性文件映射字符串值,它工作正常

我的问题是,我是否可以在我的属性文件中设置以下内容: myList=A、B、C

然后将其映射到一个列表

@Value("${myList}")
private List<String> myList;
@Value(“${myList}”)
私人名单;
当我尝试这样做时,它会将所有值放在列表的一个位置。
有没有办法告诉它通过“,”将其拆分为一个列表?

请查看上的第6.5.3节(内联列表)和第6.5.4节(数组构造)

从链接:

列表可以使用{}表示法直接在表达式中表示

{}本身意味着一个空列表。出于性能原因,如果 它本身完全由固定的文本组成,那么就需要一个常量列表 创建以表示表达式,而不是构建新列表 在每次评估中


我不确定这是否会像您希望的那样,将
@Value
注释与
PropertyPlaceHolderConfigure
结合使用,但值得一看。

使用Spring Expression语言:

 @Value("#{'${myList}'.split(',')}") 
 private List<String> myList;
@Value(“#{${myList}.split(',')}”)
私人名单;

如果属性文件中的
myList=A,B,C
,这将导致
myList
(在代码中)的值为
A
B
C

,谢谢,我会看一看,但正如你所说,可能无法像我所想的那样使用@Value注释,不适用于@Value,但无论如何,谢谢。我试图对由Value注释的字符串中的值使用解析器,但遇到了解析异常。请注意,如果您使用spring 3并定义了转换服务,则原始代码在没有.split()的情况下可以工作-
 @Value("#{'${myList}'.split(',')}") 
 private List<String> myList;