Skip to content

Commit 41d9f21

Browse files
committed
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
1 parent 7206b28 commit 41d9f21

File tree

2 files changed

+10
-0
lines changed

2 files changed

+10
-0
lines changed

spring-beans/src/main/java/org/springframework/beans/factory/support/DefaultListableBeanFactory.java

+5
Original file line numberDiff line numberDiff line change
@@ -1170,6 +1170,11 @@ public void registerBeanDefinition(String beanName, BeanDefinition beanDefinitio
11701170
}
11711171
}
11721172
else {
1173+
if (logger.isInfoEnabled()) {
1174+
logger.info("Removing alias '" + beanName + "' for bean '" + aliasedName +
1175+
"' due to registration of bean definition for bean '" + beanName + "': [" +
1176+
beanDefinition + "]");
1177+
}
11731178
removeAlias(beanName);
11741179
}
11751180
}

spring-beans/src/test/java/org/springframework/beans/factory/DefaultListableBeanFactoryTests.java

+5
Original file line numberDiff line numberDiff line change
@@ -870,10 +870,15 @@ void aliasChaining() {
870870
void beanDefinitionOverriding() {
871871
lbf.setAllowBeanDefinitionOverriding(true);
872872
lbf.registerBeanDefinition("test", new RootBeanDefinition(TestBean.class));
873+
// Override "test" bean definition.
873874
lbf.registerBeanDefinition("test", new RootBeanDefinition(NestedTestBean.class));
875+
// Temporary "test2" alias for nonexistent bean.
874876
lbf.registerAlias("otherTest", "test2");
877+
// Reassign "test2" alias to "test".
875878
lbf.registerAlias("test", "test2");
879+
// Assign "testX" alias to "test" as well.
876880
lbf.registerAlias("test", "testX");
881+
// Register new "testX" bean definition which also removes the "testX" alias for "test".
877882
lbf.registerBeanDefinition("testX", new RootBeanDefinition(TestBean.class));
878883

879884
assertThat(lbf.getBean("test")).isInstanceOf(NestedTestBean.class);

0 commit comments

Comments
 (0)