2014-09-02 4 views
0

У меня есть приложение загрузки Spring, в котором я не буду вводить свойства. В наших предыдущих проектах мы определили в нашем context.xml в PropertyPlaceholderConfigurer, чтобы загрузить файлы свойств из всех зависимых модулей сразу:Spring Java Config: PropertyPlaceholderConfigurer «местоположения» эквивалент

<bean id="propertyPlaceholderConfigurer" 
     class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> 
     <property name="ignoreResourceNotFound" value="true" /> 
     <property name="systemPropertiesModeName" value="SYSTEM_PROPERTIES_MODE_OVERRIDE" /> 
     <property name="locations"> 
      <list> 
       <value>classpath:test.properties</value> 
       <value>classpath*:/META-INF/*.properties</value> 
      </list> 
     </property> 
    </bean> 

Сейчас я ищу достойную альтернативу в стиле конфигурации Java. Я пытался аннотирование моего класса конфигурации следующим образом:

@PropertySources(value = { @PropertySource("classpath:application.properties"), 
    @PropertySource("classpath*:/META-INF/*.properties") }) 

Но @PropertySource аннотаций не любят групповые символы (что имеет смысл, поскольку он отвечает за выборку одного ресурса).

Любые идеи, подсказки, решения?

+0

Обратите внимание, что объявленный 'PropertyPlaceholderConfigurer' фасоли и' @ PropertySources' не эквивалентны. –

+1

Возможный дубликат [classpath-wildcard-in-propertysource] (http://stackoverflow.com/questions/14389995/classpath-wildcard-in-propertysource). – tmarwen

+0

Спасибо, ребята! – achingfingers

ответ

-1

Ya, это неудобно, так как PropertySource не поддерживает подстановочные знаки. Разумное решение было предложено по предыдущему вопросу, и я успешно его использовал.

classpath wildcard in @PropertySource

+2

Вы должны просто проголосовать, чтобы закрыть как дубликат. –

+0

ах, спасибо Сотириос, я запомню это в будущем. – dectarin

Смежные вопросы