diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/SpringApplication.java b/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/SpringApplication.java index 6887d07fef..5ca1aa695e 100644 --- a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/SpringApplication.java +++ b/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/SpringApplication.java @@ -341,6 +341,7 @@ public class SpringApplication { // Create and configure the environment ConfigurableEnvironment environment = getOrCreateEnvironment(); configureEnvironment(environment, applicationArguments.getSourceArgs()); + ConfigurationPropertySources.attach(environment); listeners.environmentPrepared(environment); bindToSpringApplication(environment); if (!this.isCustomEnvironment) { diff --git a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/SpringApplicationTests.java b/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/SpringApplicationTests.java index 52f960a0e4..9575deb03d 100644 --- a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/SpringApplicationTests.java +++ b/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/SpringApplicationTests.java @@ -1085,6 +1085,14 @@ class SpringApplicationTests { .getBean("someBean")).isEqualTo("override"); } + @Test + void relaxedBindingShouldWorkBeforeEnvironmentIsPrepared() { + SpringApplication application = new SpringApplication(ExampleConfig.class); + application.setWebApplicationType(WebApplicationType.NONE); + this.context = application.run("--spring.config.additionalLocation=classpath:custom-config/"); + assertThat(this.context.getEnvironment().getProperty("hello")).isEqualTo("world"); + } + @Test void lazyInitializationIsDisabledByDefault() { assertThat(new SpringApplication(LazyInitializationConfig.class).run("--spring.main.web-application-type=none") diff --git a/spring-boot-project/spring-boot/src/test/resources/custom-config/application.yml b/spring-boot-project/spring-boot/src/test/resources/custom-config/application.yml new file mode 100644 index 0000000000..bb56b05514 --- /dev/null +++ b/spring-boot-project/spring-boot/src/test/resources/custom-config/application.yml @@ -0,0 +1 @@ +hello: world