Spring, значение свойства при наличии разделителей


Я загружаю файл свойств с помощью

@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
Спасибо!


person Roxana    schedule 14.03.2013    source источник


Ответы (2)


Попробуйте с

@Value("#{T(org.springframework.util.StringUtils).commaDelimitedListToStringArray(environment['list.of.stg'])}")
person Jose Luis Martin    schedule 14.03.2013

Поскольку значение свойства передается как String, вам придется использовать String#split, но вы можете комбинировать его с Весна EL:

@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

person Reimeus    schedule 14.03.2013
comment
Спасибо за ответ - действительно. Однако сайт позволяет мне «отметить» только один ответ. Я выбрал тот, который дал Хосе, потому что у вас уже есть куча очков :) извините!: 0 - person Roxana; 15.03.2013