|
|
|
|
@ -113,6 +113,7 @@ import static org.mockito.Mockito.verify;
@@ -113,6 +113,7 @@ import static org.mockito.Mockito.verify;
|
|
|
|
|
* @author Chris Beams |
|
|
|
|
* @author Phillip Webb |
|
|
|
|
* @author Stephane Nicoll |
|
|
|
|
* @author Yanming Zhou |
|
|
|
|
*/ |
|
|
|
|
class DefaultListableBeanFactoryTests { |
|
|
|
|
|
|
|
|
|
@ -1665,6 +1666,60 @@ class DefaultListableBeanFactoryTests {
@@ -1665,6 +1666,60 @@ class DefaultListableBeanFactoryTests {
|
|
|
|
|
assertThat(lbf.containsSingleton("bd1")).isFalse(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Test |
|
|
|
|
void getBeanByTypeWithUniqueNonFallbackDefinition() { |
|
|
|
|
RootBeanDefinition bd1 = new RootBeanDefinition(TestBean.class); |
|
|
|
|
bd1.setLazyInit(true); |
|
|
|
|
bd1.setFallback(true); |
|
|
|
|
RootBeanDefinition bd2 = new RootBeanDefinition(TestBean.class); |
|
|
|
|
bd2.setFallback(true); |
|
|
|
|
RootBeanDefinition bd3 = new RootBeanDefinition(TestBean.class); |
|
|
|
|
lbf.registerBeanDefinition("bd1", bd1); |
|
|
|
|
lbf.registerBeanDefinition("bd2", bd2); |
|
|
|
|
lbf.registerBeanDefinition("bd3", bd3); |
|
|
|
|
|
|
|
|
|
TestBean bean = lbf.getBean(TestBean.class); |
|
|
|
|
assertThat(bean.getBeanName()).isEqualTo("bd3"); |
|
|
|
|
assertThat(lbf.containsSingleton("bd1")).isFalse(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Test |
|
|
|
|
void getBeanByTypeWithPrimaryAndUniqueNonFallbackDefinition() { |
|
|
|
|
RootBeanDefinition bd1 = new RootBeanDefinition(TestBean.class); |
|
|
|
|
bd1.setLazyInit(true); |
|
|
|
|
bd1.setFallback(true); |
|
|
|
|
RootBeanDefinition bd2 = new RootBeanDefinition(TestBean.class); |
|
|
|
|
bd2.setPrimary(true); |
|
|
|
|
bd2.setFallback(true); |
|
|
|
|
RootBeanDefinition bd3 = new RootBeanDefinition(TestBean.class); |
|
|
|
|
lbf.registerBeanDefinition("bd1", bd1); |
|
|
|
|
lbf.registerBeanDefinition("bd2", bd2); |
|
|
|
|
lbf.registerBeanDefinition("bd3", bd3); |
|
|
|
|
|
|
|
|
|
TestBean bean = lbf.getBean(TestBean.class); |
|
|
|
|
assertThat(bean.getBeanName()).isEqualTo("bd2"); |
|
|
|
|
assertThat(lbf.containsSingleton("bd1")).isFalse(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Test |
|
|
|
|
void getBeanByTypeWithUniqueNonFallbackAndUniqueNonDefaultDefinition() { |
|
|
|
|
RootBeanDefinition bd1 = new RootBeanDefinition(TestBean.class); |
|
|
|
|
bd1.setLazyInit(true); |
|
|
|
|
bd1.setFallback(true); |
|
|
|
|
RootBeanDefinition bd2 = new RootBeanDefinition(TestBean.class); |
|
|
|
|
bd2.setFallback(true); |
|
|
|
|
bd2.setDefaultCandidate(false); |
|
|
|
|
RootBeanDefinition bd3 = new RootBeanDefinition(TestBean.class); |
|
|
|
|
bd3.setDefaultCandidate(false); |
|
|
|
|
lbf.registerBeanDefinition("bd1", bd1); |
|
|
|
|
lbf.registerBeanDefinition("bd2", bd2); |
|
|
|
|
lbf.registerBeanDefinition("bd3", bd3); |
|
|
|
|
|
|
|
|
|
TestBean bean = lbf.getBean(TestBean.class); |
|
|
|
|
assertThat(bean.getBeanName()).isEqualTo("bd3"); |
|
|
|
|
assertThat(lbf.containsSingleton("bd1")).isFalse(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Test |
|
|
|
|
void getBeanByTypeWithUniqueNonDefaultDefinition() { |
|
|
|
|
RootBeanDefinition bd1 = new RootBeanDefinition(TestBean.class); |
|
|
|
|
|