Сопоставление шаблонов для свойств в конфигурации Spring на основе Java

Можно ли внедрить список свойств, соответствующих определенному шаблону reg exp, из файла конфигурации Spring 4 на основе Java.

Например, учитывая файл свойств, который содержит:

prefix.prop1=value1
prefix.prop2=value2
prefix.prop3=value3
other.property=someothervalue

В идеале я хотел бы ввести свойства prefix.* в bean-компонент - например, в качестве карты.

@Configuration
public class AppConfiguration{

    public valueMap(@Value(?prefix.*?) Map<String, String> propertyMap) {

        //where propertyMap would contain key/values : 
        //prop1, value1 ; prop2, value2 ; prop3, value3

    }
}

Я безуспешно смотрел на выражения Spring EL и при настройке PropertyPlaceholderConfigurer. В идеале я не хочу снова читать файл и обрабатывать его снова, если Spring может сделать это за меня.


person BijanE    schedule 29.07.2014    source источник
comment
Вы можете сделать это в Spring Boot — см. 21.6 Типобезопасные свойства конфигурации   -  person axtavt    schedule 29.07.2014


Ответы (1)


Вот обходной путь:

Расширьте PropertyPlaceholderConfigurer и добавьте метод, который дает вам результат mergeProperties().

Затем вы можете внедрить этот новый bean-компонент в свой AppConfiguration, перебрать свойства и отфильтровать их с нужным префиксом.

person Aaron Digulla    schedule 29.07.2014