diff --git a/spring-boot/src/main/java/org/springframework/boot/SpringApplication.java b/spring-boot/src/main/java/org/springframework/boot/SpringApplication.java index b051bb13e86..cc7fef55d32 100644 --- a/spring-boot/src/main/java/org/springframework/boot/SpringApplication.java +++ b/spring-boot/src/main/java/org/springframework/boot/SpringApplication.java @@ -71,7 +71,6 @@ import org.springframework.util.ObjectUtils; import org.springframework.util.ReflectionUtils; import org.springframework.util.StopWatch; import org.springframework.util.StringUtils; -import org.springframework.web.context.ConfigurableWebApplicationContext; import org.springframework.web.context.WebApplicationContext; import org.springframework.web.context.support.StandardServletEnvironment; @@ -602,15 +601,10 @@ public class SpringApplication { * @param context the application context */ protected void postProcessApplicationContext(ConfigurableApplicationContext context) { - if (this.webEnvironment) { - if (context instanceof ConfigurableWebApplicationContext) { - ConfigurableWebApplicationContext configurableContext = (ConfigurableWebApplicationContext) context; - if (this.beanNameGenerator != null) { - configurableContext.getBeanFactory().registerSingleton( - AnnotationConfigUtils.CONFIGURATION_BEAN_NAME_GENERATOR, - this.beanNameGenerator); - } - } + if (this.beanNameGenerator != null) { + context.getBeanFactory().registerSingleton( + AnnotationConfigUtils.CONFIGURATION_BEAN_NAME_GENERATOR, + this.beanNameGenerator); } if (this.resourceLoader != null) { if (context instanceof GenericApplicationContext) { diff --git a/spring-boot/src/test/java/org/springframework/boot/SpringApplicationTests.java b/spring-boot/src/test/java/org/springframework/boot/SpringApplicationTests.java index 7271bd0a11e..c80dc0c2a96 100644 --- a/spring-boot/src/test/java/org/springframework/boot/SpringApplicationTests.java +++ b/spring-boot/src/test/java/org/springframework/boot/SpringApplicationTests.java @@ -404,6 +404,20 @@ public class SpringApplicationTests { assertThat(bean).isSameAs(beanNameGenerator); } + @Test + public void customBeanNameGeneratorWithNonWebApplication() throws Exception { + TestSpringApplication application = new TestSpringApplication( + ExampleWebConfig.class); + application.setWebEnvironment(false); + BeanNameGenerator beanNameGenerator = new DefaultBeanNameGenerator(); + application.setBeanNameGenerator(beanNameGenerator); + this.context = application.run(); + verify(application.getLoader()).setBeanNameGenerator(beanNameGenerator); + Object bean = this.context + .getBean(AnnotationConfigUtils.CONFIGURATION_BEAN_NAME_GENERATOR); + assertThat(bean).isSameAs(beanNameGenerator); + } + @Test public void commandLinePropertySource() throws Exception { SpringApplication application = new SpringApplication(ExampleConfig.class);