Commit a47d5ccd authored by Dave Syer's avatar Dave Syer

Change order of config file locations to be more natural

The most natural order is "more specific locations win". That way
if a use has application.properties in the root of a JAR (as is
normal), overrides can always be made on
classpath:/config/application.properties (as well as
file:./application.properties which has always been the case).

Before this change properties in classpath:/config/* were over
written by those in the root location, not the other way round.

Fixes gh-527
parent d6be3dfb
......@@ -96,8 +96,8 @@ public class ConfigFileApplicationListener implements
private static final String CONFIG_LOCATION_PROPERTY = "spring.config.location";
private static final String DEFAULT_SEARCH_LOCATIONS = "file:./,file:./config/,"
+ "classpath:/,classpath:/config/";
private static final String DEFAULT_SEARCH_LOCATIONS = "file:./config/,file:./,"
+ "classpath:/config/,classpath:/";
private static final String DEFAULT_NAMES = "application";
......
......@@ -133,6 +133,15 @@ public class ConfigFileApplicationListenerTests {
}
}
@Test
public void moreSpecificLocationTakesPrecedenceOverRoot() throws Exception {
EnvironmentTestUtils.addEnvironment(this.environment,
"spring.config.name:specific");
this.initializer.onApplicationEvent(this.event);
String property = this.environment.getProperty("my.property");
assertThat(property, equalTo("specific"));
}
@Test
public void loadTwoOfThreePropertiesFile() throws Exception {
EnvironmentTestUtils.addEnvironment(this.environment, "spring.config.location:"
......
my.property=specific
\ No newline at end of file
my.property=root
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment