2014-02-06 2 views
0

У меня есть два файла свойств весны, один из которых используется интеграционными тестами и тот, который используется для фактического проекта. Файлы свойств в основном те же, но в файле свойств теста у меня есть несколько свойств, которые отличаются для целей тестирования. Это боль в обслуживании, каждый раз, когда я добавляю свойство, я должен скопировать его в файл свойств теста, даже если он точно такой же. У меня просто была ошибка в тестах, вызванная тем, что файл свойств теста не был обновлен.Duplicate spring properties file

У меня есть application-context-test.xml, который импортирует много компонентов из проекта application-context.xml, но переопределяет компоненты, необходимые для тестирования, могу ли я сделать то же самое для файлов свойств?

Вот мои конфигурации файлов свойство

application-context.xml

<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> 
    <property name="location" value="classpath:myproject.properties"/> 
</bean> 

application-context-test.xml

<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> 
    <property name="location" value="classpath:myproject-test.properties"/> 
</bean> 

ответ

1

Вы можете создать два файла с разными свойствами и загрузить их обоих, как это:

<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> 
    <property name="locations"> 
      <list> 
       <value="classpath:myproject-test.properties"/> 
       <value="classpath:myproject.properties"/> 
      </list> 
    </property> 
</bean> 
+0

Будет ли свойства в myproject-test.properties переопределять те же свойства в myproject.properties? – user86834

+0

По умолчанию поведение свойств загрузки в java переопределяет старые значения, если одно и то же свойство загружается снова. Поэтому он также должен сделать то же самое. попробуйте изменить порядок файлов свойств, чтобы получить желаемое поведение. – Sanjeev