Я боролся с этим в течение некоторого времени. Я гуглил и пробовал несколько вещей, но все, что я нашел, не могло решить мою проблему.
<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations" ref="propertiesLocations" />
<property name="searchSystemEnvironment" value="true" />
<property name="systemPropertiesModeName" value="SYSTEM_PROPERTIES_MODE_OVERRIDE" />
</bean>
И это то, что у меня есть в качестве свойств Locations.
<beans profile="">
<util:list id="propertiesLocations">
<value>classpath:com/lala/project/configuration/core.properties
</value>
<value>classpath*:com/lala/project/**/configuration/*.properties
</value>
<value>classpath*:com/lala/project/**/test/configuration/*.properties
</value>
<value>classpath*:project.properties
</value>
</util:list>
</beans>
<beans profile="test">
<util:list id="propertiesLocations">
<value>classpath:com/lala/project/configuration/core.properties
</value>
<value>classpath*:com/lala/project/**/configuration/*.properties
</value>
<value>classpath*:com/lala/project/**/test/configuration/*.properties
</value>
<value>classpath*:project-test.properties
</value>
<value>classpath*:project.properties
</value>
</util:list>
</beans>
<beans profile="testing">
<util:list id="propertiesLocations">
<value>classpath:com/lala/project/configuration/core.properties
</value>
<value>classpath*:com/lala/project/**/configuration/*.properties
</value> <!-- production properties -->
<value>classpath*:com/lala/project/**/test/configuration/*.properties <!-- test properties -->
</value>
<value>classpath*:project-testing.properties
</value>
<value>classpath*:project.properties
</value>
</util:list>
</beans>
И затем, в одном из моих подпроектов, у меня есть 2 файла свойств, мои "производственные" свойства под
src/main/resources/com/lala/project/subproject1/subprojectA/configuration/myProperties.properties
и мои "тестовые" свойства под
src/test/resources/com/lala/project/subproject1/subprojectA/test/configuration/myProperties.properties
Очевидно, что эти файлы имеют почти одинаковые имена свойств с разными значениями. Я хотел бы знать, почему мои тесты в подпроекте продолжают использовать мои «производственные» свойства вместо моих «тестовых» свойств? Другими словами, почему Spring не выбирает мои «тестовые» свойства и не переопределяет мои «производственные свойства»?
Я забыл упомянуть, что я не могу просто стереть местоположение свойств «производство» для своего тестового профиля, так как мне нужны свойства производства из других проектов, подпроектов.