Consistently override (and prevent overriding for) aliases with bean definitions
Closes gh-27866
This commit is contained in:
@@ -854,8 +854,11 @@ class DefaultListableBeanFactoryTests {
|
||||
lbf.registerBeanDefinition("test", new RootBeanDefinition(NestedTestBean.class));
|
||||
lbf.registerAlias("otherTest", "test2");
|
||||
lbf.registerAlias("test", "test2");
|
||||
lbf.registerAlias("test", "testX");
|
||||
lbf.registerBeanDefinition("testX", new RootBeanDefinition(TestBean.class));
|
||||
assertThat(lbf.getBean("test")).isInstanceOf(NestedTestBean.class);
|
||||
assertThat(lbf.getBean("test2")).isInstanceOf(NestedTestBean.class);
|
||||
assertThat(lbf.getBean("testX")).isInstanceOf(TestBean.class);
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -864,6 +867,7 @@ class DefaultListableBeanFactoryTests {
|
||||
BeanDefinition oldDef = new RootBeanDefinition(TestBean.class);
|
||||
BeanDefinition newDef = new RootBeanDefinition(NestedTestBean.class);
|
||||
lbf.registerBeanDefinition("test", oldDef);
|
||||
lbf.registerAlias("test", "testX");
|
||||
assertThatExceptionOfType(BeanDefinitionOverrideException.class).isThrownBy(() ->
|
||||
lbf.registerBeanDefinition("test", newDef))
|
||||
.satisfies(ex -> {
|
||||
@@ -871,6 +875,13 @@ class DefaultListableBeanFactoryTests {
|
||||
assertThat(ex.getBeanDefinition()).isEqualTo(newDef);
|
||||
assertThat(ex.getExistingDefinition()).isEqualTo(oldDef);
|
||||
});
|
||||
assertThatExceptionOfType(BeanDefinitionOverrideException.class).isThrownBy(() ->
|
||||
lbf.registerBeanDefinition("testX", newDef))
|
||||
.satisfies(ex -> {
|
||||
assertThat(ex.getBeanName()).isEqualTo("testX");
|
||||
assertThat(ex.getBeanDefinition()).isEqualTo(newDef);
|
||||
assertThat(ex.getExistingDefinition()).isEqualTo(oldDef);
|
||||
});
|
||||
}
|
||||
|
||||
@Test
|
||||
|
||||
Reference in New Issue
Block a user