1


我正在加载一个属性文件

@PropertySource("classpath:propFile.properties")

在此属性文件中,我有以下条目:

list.of.stg=a,b,c

此外,我这样做:

@Value("${list.of.stg}")public void setSomeList(...)
{in the method, the parameter has only the value a!!!}

你能告诉我一种达到完整价值观的方法吗

list.of.stg
谢谢!

4

2 回答 2

1

尝试

@Value("#{T(org.springframework.util.StringUtils).commaDelimitedListToStringArray(environment['list.of.stg'])}")
于 2013-03-14T18:43:53.213 回答
0

由于属性值是作为 a 传入的,因此String您必须使用,但您可以与Spring ELString#split结合使用:

@Value("#{'${list.of.stg}'.split(',')}") 
public void setSomeList(List<String> list) {
   this.myList = list;
}

或者只是在类成员变量上

@Value("#{'${list.of.stg}'.split(',')}") 
private List<String> myList;

与使用@PropertySource注解时一样,不要忘记创建一个PropertyPlaceholderConfigurer @Bean来加载必要的属性文件。

相关:@Value 和 ArrayList

于 2013-03-14T17:19:51.043 回答