@@ -208,7 +208,6 @@ public boolean containsBean(String name) {
208
208
public boolean isSingleton (String name ) throws NoSuchBeanDefinitionException {
209
209
String beanName = BeanFactoryUtils .transformedBeanName (name );
210
210
Object bean = obtainBean (beanName );
211
- // In case of FactoryBean, return singleton status of created object.
212
211
if (bean instanceof FactoryBean <?> factoryBean && !BeanFactoryUtils .isFactoryDereference (name )) {
213
212
return factoryBean .isSingleton ();
214
213
}
@@ -219,7 +218,6 @@ public boolean isSingleton(String name) throws NoSuchBeanDefinitionException {
219
218
public boolean isPrototype (String name ) throws NoSuchBeanDefinitionException {
220
219
String beanName = BeanFactoryUtils .transformedBeanName (name );
221
220
Object bean = obtainBean (beanName );
222
- // In case of FactoryBean, return prototype status of created object.
223
221
return (!BeanFactoryUtils .isFactoryDereference (name ) &&
224
222
((bean instanceof SmartFactoryBean <?> smartFactoryBean && smartFactoryBean .isPrototype ()) ||
225
223
(bean instanceof FactoryBean <?> factoryBean && !factoryBean .isSingleton ())));
@@ -263,7 +261,6 @@ private boolean isTypeMatch(FactoryBean<?> factoryBean, Class<?> typeToMatch) th
263
261
String beanName = BeanFactoryUtils .transformedBeanName (name );
264
262
Object bean = obtainBean (beanName );
265
263
if (bean instanceof FactoryBean <?> factoryBean && !BeanFactoryUtils .isFactoryDereference (name )) {
266
- // If it's a FactoryBean, we want to look at what it creates, not the factory class.
267
264
return factoryBean .getObjectType ();
268
265
}
269
266
return bean .getClass ();
@@ -417,18 +414,14 @@ public <T> Map<String, T> getBeansOfType(@Nullable Class<T> type, boolean includ
417
414
for (Map .Entry <String , Object > entry : this .beans .entrySet ()) {
418
415
String beanName = entry .getKey ();
419
416
Object beanInstance = entry .getValue ();
420
- // Is bean a FactoryBean?
421
417
if (beanInstance instanceof FactoryBean <?> factoryBean && !isFactoryType ) {
422
- // Match object created by FactoryBean.
423
418
if ((includeNonSingletons || factoryBean .isSingleton ()) &&
424
419
(type == null || isTypeMatch (factoryBean , type ))) {
425
420
matches .put (beanName , getBean (beanName , type ));
426
421
}
427
422
}
428
423
else {
429
424
if (type == null || type .isInstance (beanInstance )) {
430
- // If type to match is FactoryBean, return FactoryBean itself.
431
- // Else, return bean instance.
432
425
if (isFactoryType ) {
433
426
beanName = FACTORY_BEAN_PREFIX + beanName ;
434
427
}
0 commit comments