Honour custom bean name generator for non-web applications
Closes gh-6160
This commit is contained in:
parent
ed2586d38d
commit
5c43a5b7dd
|
@ -72,7 +72,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;
|
||||
|
||||
|
@ -603,15 +602,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) {
|
||||
|
|
|
@ -53,6 +53,7 @@ import org.springframework.context.ConfigurableApplicationContext;
|
|||
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
|
||||
import org.springframework.context.annotation.AnnotationConfigUtils;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.ComponentScan;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.context.event.ContextRefreshedEvent;
|
||||
import org.springframework.context.event.SimpleApplicationEventMulticaster;
|
||||
|
@ -403,6 +404,21 @@ public class SpringApplicationTests {
|
|||
sameInstance((Object) 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);
|
||||
assertThat(
|
||||
this.context
|
||||
.getBean(AnnotationConfigUtils.CONFIGURATION_BEAN_NAME_GENERATOR),
|
||||
sameInstance((Object) beanNameGenerator));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void commandLinePropertySource() throws Exception {
|
||||
SpringApplication application = new SpringApplication(ExampleConfig.class);
|
||||
|
|
Loading…
Reference in New Issue