Log alias removal in DefaultListableBeanFactory
Prior to this commit, information was logged when a bean definition overrode an existing bean definition, but nothing was logged when the registration of a bean definition resulted in the removal of an alias. With this commit, an INFO message is now logged whenever an alias is removed in DefaultListableBeanFactory. Closes gh-34070
This commit is contained in:
parent
7206b28272
commit
41d9f21ab9
|
@ -1170,6 +1170,11 @@ public class DefaultListableBeanFactory extends AbstractAutowireCapableBeanFacto
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
if (logger.isInfoEnabled()) {
|
||||||
|
logger.info("Removing alias '" + beanName + "' for bean '" + aliasedName +
|
||||||
|
"' due to registration of bean definition for bean '" + beanName + "': [" +
|
||||||
|
beanDefinition + "]");
|
||||||
|
}
|
||||||
removeAlias(beanName);
|
removeAlias(beanName);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -870,10 +870,15 @@ class DefaultListableBeanFactoryTests {
|
||||||
void beanDefinitionOverriding() {
|
void beanDefinitionOverriding() {
|
||||||
lbf.setAllowBeanDefinitionOverriding(true);
|
lbf.setAllowBeanDefinitionOverriding(true);
|
||||||
lbf.registerBeanDefinition("test", new RootBeanDefinition(TestBean.class));
|
lbf.registerBeanDefinition("test", new RootBeanDefinition(TestBean.class));
|
||||||
|
// Override "test" bean definition.
|
||||||
lbf.registerBeanDefinition("test", new RootBeanDefinition(NestedTestBean.class));
|
lbf.registerBeanDefinition("test", new RootBeanDefinition(NestedTestBean.class));
|
||||||
|
// Temporary "test2" alias for nonexistent bean.
|
||||||
lbf.registerAlias("otherTest", "test2");
|
lbf.registerAlias("otherTest", "test2");
|
||||||
|
// Reassign "test2" alias to "test".
|
||||||
lbf.registerAlias("test", "test2");
|
lbf.registerAlias("test", "test2");
|
||||||
|
// Assign "testX" alias to "test" as well.
|
||||||
lbf.registerAlias("test", "testX");
|
lbf.registerAlias("test", "testX");
|
||||||
|
// Register new "testX" bean definition which also removes the "testX" alias for "test".
|
||||||
lbf.registerBeanDefinition("testX", new RootBeanDefinition(TestBean.class));
|
lbf.registerBeanDefinition("testX", new RootBeanDefinition(TestBean.class));
|
||||||
|
|
||||||
assertThat(lbf.getBean("test")).isInstanceOf(NestedTestBean.class);
|
assertThat(lbf.getBean("test")).isInstanceOf(NestedTestBean.class);
|
||||||
|
|
Loading…
Reference in New Issue