@@ -1455,6 +1455,24 @@ public void testGetBeanByTypeWithPrimary() {
1455
1455
assertFalse (lbf .containsSingleton ("bd1" ));
1456
1456
}
1457
1457
1458
+ @ Test
1459
+ public void testGetFactoryBeanByTypeWithPrimary () {
1460
+ DefaultListableBeanFactory lbf = new DefaultListableBeanFactory ();
1461
+ RootBeanDefinition bd1 = new RootBeanDefinition (NullTestBeanFactoryBean .class );
1462
+ RootBeanDefinition bd2 = new RootBeanDefinition (NullTestBeanFactoryBean .class );
1463
+ bd2 .setPrimary (true );
1464
+ lbf .registerBeanDefinition ("bd1" , bd1 );
1465
+ lbf .registerBeanDefinition ("bd2" , bd2 );
1466
+ NullTestBeanFactoryBean factoryBeanByType = lbf .getBean (NullTestBeanFactoryBean .class );
1467
+ NullTestBeanFactoryBean bd1FactoryBean = (NullTestBeanFactoryBean )lbf .getBean ("&bd1" );
1468
+ NullTestBeanFactoryBean bd2FactoryBean = (NullTestBeanFactoryBean )lbf .getBean ("&bd2" );
1469
+ assertNotNull (factoryBeanByType );
1470
+ assertNotNull (bd1FactoryBean );
1471
+ assertNotNull (bd2FactoryBean );
1472
+ assertNotEquals (factoryBeanByType , bd1FactoryBean );
1473
+ assertEquals (factoryBeanByType , bd2FactoryBean );
1474
+ }
1475
+
1458
1476
@ Test
1459
1477
public void testGetBeanByTypeWithMultiplePrimary () {
1460
1478
DefaultListableBeanFactory lbf = new DefaultListableBeanFactory ();
@@ -1869,6 +1887,24 @@ public void testAutowireBeanWithFactoryBeanByType() {
1869
1887
factoryBean , bean .getFactoryBean ());
1870
1888
}
1871
1889
1890
+ @ Test
1891
+ public void testAutowireBeanWithFactoryBeanByTypeWithPrimary () {
1892
+ DefaultListableBeanFactory lbf = new DefaultListableBeanFactory ();
1893
+ RootBeanDefinition bd1 = new RootBeanDefinition (LazyInitFactory .class );
1894
+ RootBeanDefinition bd2 = new RootBeanDefinition (LazyInitFactory .class );
1895
+ bd2 .setPrimary (true );
1896
+ lbf .registerBeanDefinition ("bd1" , bd1 );
1897
+ lbf .registerBeanDefinition ("bd2" , bd2 );
1898
+ LazyInitFactory bd1FactoryBean = (LazyInitFactory ) lbf .getBean ("&bd1" );
1899
+ LazyInitFactory bd2FactoryBean = (LazyInitFactory ) lbf .getBean ("&bd2" );
1900
+ assertNotNull (bd1FactoryBean );
1901
+ assertNotNull (bd2FactoryBean );
1902
+ FactoryBeanDependentBean bean = (FactoryBeanDependentBean ) lbf .autowire (FactoryBeanDependentBean .class ,
1903
+ AutowireCapableBeanFactory .AUTOWIRE_BY_TYPE , true );
1904
+ assertNotEquals (bd1FactoryBean , bean .getFactoryBean ());
1905
+ assertEquals (bd2FactoryBean , bean .getFactoryBean ());
1906
+ }
1907
+
1872
1908
@ Test
1873
1909
public void testGetTypeForAbstractFactoryBean () {
1874
1910
DefaultListableBeanFactory lbf = new DefaultListableBeanFactory ();
0 commit comments