@@ -1956,6 +1956,42 @@ void getBeanByTypeInstanceFiltersOutNonAutowireCandidates() {
1956
1956
lbf .getBean (TestBean .class , 67 ));
1957
1957
}
1958
1958
1959
+ @ Test
1960
+ void getBeanByTypeInstanceWithConstructorIgnoresInstanceSupplier () {
1961
+ RootBeanDefinition bd1 = createConstructorDependencyBeanDefinition (99 );
1962
+ bd1 .setInstanceSupplier (() -> new ConstructorDependency (new TestBean ("test" )));
1963
+ lbf .registerBeanDefinition ("bd1" , bd1 );
1964
+
1965
+ ConstructorDependency defaultInstance = lbf .getBean (ConstructorDependency .class );
1966
+ assertThat (defaultInstance .beanName ).isEqualTo ("bd1" );
1967
+ assertThat (defaultInstance .spouseAge ).isEqualTo (0 );
1968
+
1969
+ ConstructorDependency argsInstance = lbf .getBean (ConstructorDependency .class , 42 );
1970
+ assertThat (argsInstance .beanName ).isEqualTo ("bd1" );
1971
+ assertThat (argsInstance .spouseAge ).isEqualTo (42 );
1972
+ }
1973
+
1974
+ @ Test
1975
+ void getBeanByTypeInstanceWithFactoryMethodIgnoresInstanceSupplier () {
1976
+ RootBeanDefinition bd1 = new RootBeanDefinition (TestBean .class );
1977
+ bd1 .setScope (BeanDefinition .SCOPE_PROTOTYPE );
1978
+ bd1 .setFactoryBeanName ("config" );
1979
+ bd1 .setFactoryMethodName ("create" );
1980
+ bd1 .setInstanceSupplier (() -> new TestBean ("test" ));
1981
+ lbf .registerBeanDefinition ("config" , new RootBeanDefinition (BeanWithFactoryMethod .class ));
1982
+ lbf .registerBeanDefinition ("bd1" , bd1 );
1983
+
1984
+ TestBean defaultInstance = lbf .getBean (TestBean .class );
1985
+ assertThat (defaultInstance .getBeanName ()).isEqualTo ("bd1" );
1986
+ assertThat (defaultInstance .getName ()).isEqualTo ("test" );
1987
+ assertThat (defaultInstance .getAge ()).isEqualTo (0 );
1988
+
1989
+ TestBean argsInstance = lbf .getBean (TestBean .class , "another" , 42 );
1990
+ assertThat (argsInstance .getBeanName ()).isEqualTo ("bd1" );
1991
+ assertThat (argsInstance .getName ()).isEqualTo ("another" );
1992
+ assertThat (argsInstance .getAge ()).isEqualTo (42 );
1993
+ }
1994
+
1959
1995
@ Test
1960
1996
@ SuppressWarnings ("rawtypes" )
1961
1997
void beanProviderSerialization () throws Exception {
@@ -3192,6 +3228,10 @@ public TestBean create() {
3192
3228
return tb ;
3193
3229
}
3194
3230
3231
+ public TestBean create (String name , int age ) {
3232
+ return new TestBean (name , age );
3233
+ }
3234
+
3195
3235
public TestBean createWithArgs (String arg ) {
3196
3236
TestBean tb = new TestBean ();
3197
3237
tb .setName (arg );
0 commit comments