diff --git a/spring-boot/src/main/java/org/springframework/boot/context/config/ConfigFileApplicationListener.java b/spring-boot/src/main/java/org/springframework/boot/context/config/ConfigFileApplicationListener.java index 14652a93de..a03c7dbcbf 100644 --- a/spring-boot/src/main/java/org/springframework/boot/context/config/ConfigFileApplicationListener.java +++ b/spring-boot/src/main/java/org/springframework/boot/context/config/ConfigFileApplicationListener.java @@ -388,7 +388,8 @@ public class ConfigFileApplicationListener implements EnvironmentPostProcessor, } private Set initializeActiveProfiles() { - if (!this.environment.containsProperty(ACTIVE_PROFILES_PROPERTY)) { + if (!this.environment.containsProperty(ACTIVE_PROFILES_PROPERTY) + && !this.environment.containsProperty(INCLUDE_PROFILES_PROPERTY)) { return Collections.emptySet(); } // Any pre-existing active profiles set via property sources (e.g. System diff --git a/spring-boot/src/test/java/org/springframework/boot/context/config/ConfigFileApplicationListenerTests.java b/spring-boot/src/test/java/org/springframework/boot/context/config/ConfigFileApplicationListenerTests.java index db6dd3977e..27a439cb5b 100644 --- a/spring-boot/src/test/java/org/springframework/boot/context/config/ConfigFileApplicationListenerTests.java +++ b/spring-boot/src/test/java/org/springframework/boot/context/config/ConfigFileApplicationListenerTests.java @@ -851,6 +851,15 @@ public class ConfigFileApplicationListenerTests { .isFalse(); } + @Test + public void profileCanBeIncludedWithoutAnyBeingActive() throws Exception { + SpringApplication application = new SpringApplication(Config.class); + application.setWebEnvironment(false); + this.context = application.run("--spring.profiles.include=dev"); + String property = this.context.getEnvironment().getProperty("my.property"); + assertThat(property).isEqualTo("fromdevpropertiesfile"); + } + @Test public void activeProfilesCanBeConfiguredUsingPlaceholdersResolvedAgainstTheEnvironment() throws Exception {