2013-09-09 2 views
4

Я хотел бы иметь некоторые ресурсы, но игнорировать другие, если его отсутствует ... Как это сделать? Как я вижу, я могу делать толькоSpring context: property-placeholder игнорировать ресурсы не найдены

<context:property-placeholder 
    ignore-resource-not-found="true" 
location="required.properties, not-required-override.properties" /> 

Это влияет на каждую конфигурацию, указанную там.

// EDIT Это рабочий пример

<bean id="requiredProperties" 
    class="org.springframework.beans.factory.config.PropertiesFactoryBean"> 
    <property name="locations"> 
     <list> 
      <value>classpath:database.properties</value> 
      <value>classpath:storage.properties</value> 
      <value>classpath:log4j.properties</value> 
      <value>classpath:mailing.properties</value> 
     </list> 
    </property> 
</bean> 

<context:property-placeholder 
    properties-ref="requiredProperties" ignore-resource-not-found="true" 
    location="file:\${user.dir}/config/cvnizer.properties" /> 

ответ

7

PropertiesFactoryBean Добавить элемент для необходимых зависимостей и просто подключить свойства к <context:property-placeholder />.

<bean id="requiredProperties" class="org.springframework.beans.factory.config.PropertiesFactoryBean"> 
    <property name="locations" value="classpath:file1.properties,classpath:file2.properties" /> 
</bean> 

<context:property-placeholder properties-ref="requiredProperties" ignore-resource-not-found="true" location="not-required-override.properties" /> 

Свойства будут меня объединены во время выполнения, поэтому вы все равно можете переопределить при чтении файла свойств.

+0

Ok :). Но как загрузить их из класса, как это было раньше? Он думает, что classpath: x.properties - это файл, когда я использую утилиту: свойства, которые не были в этом случае. – kboom

+0

То же ... Место, используемое в любом пространстве имен, отличает префикс 'classpath:' ... Я изменил свой андерсер включают префикс пути к классам. –

+0

Я обновил свой вопрос с помощью моей текущей конфигурации, пожалуйста, ответьте :) – kboom

0

я думаю, что вы можете добавить так же:

<context:property-placeholder location="/WEB-INF/properties/config.properties" order="1" ignore-unresolvable="true"/> 
+0

Это будет работать, только если это веб-проект ... и вы не можете ожидать, что файл config.properties будет находиться в том же месте –