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