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.ReflectionUtils;
|
||||||
import org.springframework.util.StopWatch;
|
import org.springframework.util.StopWatch;
|
||||||
import org.springframework.util.StringUtils;
|
import org.springframework.util.StringUtils;
|
||||||
import org.springframework.web.context.ConfigurableWebApplicationContext;
|
|
||||||
import org.springframework.web.context.WebApplicationContext;
|
import org.springframework.web.context.WebApplicationContext;
|
||||||
import org.springframework.web.context.support.StandardServletEnvironment;
|
import org.springframework.web.context.support.StandardServletEnvironment;
|
||||||
|
|
||||||
|
@ -603,15 +602,10 @@ public class SpringApplication {
|
||||||
* @param context the application context
|
* @param context the application context
|
||||||
*/
|
*/
|
||||||
protected void postProcessApplicationContext(ConfigurableApplicationContext context) {
|
protected void postProcessApplicationContext(ConfigurableApplicationContext context) {
|
||||||
if (this.webEnvironment) {
|
if (this.beanNameGenerator != null) {
|
||||||
if (context instanceof ConfigurableWebApplicationContext) {
|
context.getBeanFactory().registerSingleton(
|
||||||
ConfigurableWebApplicationContext configurableContext = (ConfigurableWebApplicationContext) context;
|
AnnotationConfigUtils.CONFIGURATION_BEAN_NAME_GENERATOR,
|
||||||
if (this.beanNameGenerator != null) {
|
this.beanNameGenerator);
|
||||||
configurableContext.getBeanFactory().registerSingleton(
|
|
||||||
AnnotationConfigUtils.CONFIGURATION_BEAN_NAME_GENERATOR,
|
|
||||||
this.beanNameGenerator);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
if (this.resourceLoader != null) {
|
if (this.resourceLoader != null) {
|
||||||
if (context instanceof GenericApplicationContext) {
|
if (context instanceof GenericApplicationContext) {
|
||||||
|
|
|
@ -53,6 +53,7 @@ import org.springframework.context.ConfigurableApplicationContext;
|
||||||
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
|
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
|
||||||
import org.springframework.context.annotation.AnnotationConfigUtils;
|
import org.springframework.context.annotation.AnnotationConfigUtils;
|
||||||
import org.springframework.context.annotation.Bean;
|
import org.springframework.context.annotation.Bean;
|
||||||
|
import org.springframework.context.annotation.ComponentScan;
|
||||||
import org.springframework.context.annotation.Configuration;
|
import org.springframework.context.annotation.Configuration;
|
||||||
import org.springframework.context.event.ContextRefreshedEvent;
|
import org.springframework.context.event.ContextRefreshedEvent;
|
||||||
import org.springframework.context.event.SimpleApplicationEventMulticaster;
|
import org.springframework.context.event.SimpleApplicationEventMulticaster;
|
||||||
|
@ -403,6 +404,21 @@ public class SpringApplicationTests {
|
||||||
sameInstance((Object) beanNameGenerator));
|
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
|
@Test
|
||||||
public void commandLinePropertySource() throws Exception {
|
public void commandLinePropertySource() throws Exception {
|
||||||
SpringApplication application = new SpringApplication(ExampleConfig.class);
|
SpringApplication application = new SpringApplication(ExampleConfig.class);
|
||||||
|
|
Loading…
Reference in New Issue