Transform the beanName in method isPrimary

Transform the beanName in method DefaultListableBeanFactory.isPrimary.
Add the corresponding test cases.
Fixes #22675.
This commit is contained in:
liguoxiong
2019-03-30 20:52:19 +08:00
committed by Juergen Hoeller
parent a11a592734
commit 7b11c3b599
2 changed files with 40 additions and 3 deletions

View File

@@ -1455,6 +1455,24 @@ public class DefaultListableBeanFactoryTests {
assertFalse(lbf.containsSingleton("bd1"));
}
@Test
public void testGetFactoryBeanByTypeWithPrimary() {
DefaultListableBeanFactory lbf = new DefaultListableBeanFactory();
RootBeanDefinition bd1 = new RootBeanDefinition(NullTestBeanFactoryBean.class);
RootBeanDefinition bd2 = new RootBeanDefinition(NullTestBeanFactoryBean.class);
bd2.setPrimary(true);
lbf.registerBeanDefinition("bd1", bd1);
lbf.registerBeanDefinition("bd2", bd2);
NullTestBeanFactoryBean factoryBeanByType = lbf.getBean(NullTestBeanFactoryBean.class);
NullTestBeanFactoryBean bd1FactoryBean = (NullTestBeanFactoryBean)lbf.getBean("&bd1");
NullTestBeanFactoryBean bd2FactoryBean = (NullTestBeanFactoryBean)lbf.getBean("&bd2");
assertNotNull(factoryBeanByType);
assertNotNull(bd1FactoryBean);
assertNotNull(bd2FactoryBean);
assertNotEquals(factoryBeanByType, bd1FactoryBean);
assertEquals(factoryBeanByType, bd2FactoryBean);
}
@Test
public void testGetBeanByTypeWithMultiplePrimary() {
DefaultListableBeanFactory lbf = new DefaultListableBeanFactory();
@@ -1869,6 +1887,24 @@ public class DefaultListableBeanFactoryTests {
factoryBean, bean.getFactoryBean());
}
@Test
public void testAutowireBeanWithFactoryBeanByTypeWithPrimary() {
DefaultListableBeanFactory lbf = new DefaultListableBeanFactory();
RootBeanDefinition bd1 = new RootBeanDefinition(LazyInitFactory.class);
RootBeanDefinition bd2 = new RootBeanDefinition(LazyInitFactory.class);
bd2.setPrimary(true);
lbf.registerBeanDefinition("bd1", bd1);
lbf.registerBeanDefinition("bd2", bd2);
LazyInitFactory bd1FactoryBean = (LazyInitFactory) lbf.getBean("&bd1");
LazyInitFactory bd2FactoryBean = (LazyInitFactory) lbf.getBean("&bd2");
assertNotNull(bd1FactoryBean);
assertNotNull(bd2FactoryBean);
FactoryBeanDependentBean bean = (FactoryBeanDependentBean) lbf.autowire(FactoryBeanDependentBean.class,
AutowireCapableBeanFactory.AUTOWIRE_BY_TYPE, true);
assertNotEquals(bd1FactoryBean, bean.getFactoryBean());
assertEquals(bd2FactoryBean, bean.getFactoryBean());
}
@Test
public void testGetTypeForAbstractFactoryBean() {
DefaultListableBeanFactory lbf = new DefaultListableBeanFactory();