Spring - BeanFactory 之 FactoryBeanRegistrySupport

FactoryBeanRegistrySupport


FactoryBeanRegistrySupport提供了一些FactoryBean的相关方法供BeanFactory内部使用。

管理FactoryBean生产的单例

FactoryBeanRegistrySupport的成员变量:

private final Map factoryBeanObjectCache = new ConcurrentHashMap<>(16);

factoryBeanObjectCache是用于存放FactoryBean单例的Map。

FactoryBean和FactoryBean生成的Bean的辨析

FactoryBean FactoryBean生成的Bean
种类 FactoryBean是一个普通Bean,它和普通的Bean总体上没有区别 FactoryBean生成的Bean是一种特殊的Bean
创建途径 通过CreateBean方法创建 通过FactoryBean的getObject方法
是否是单例 配置决定 由FactoryBean的isSingleton方法决定的
单例存放点 DefaultSingletonBeanRegistry的SingletonObjects FactoryBeanRegistrySupport的factoryBeanObjectCache
创建方式 可以像普通Bean进行依赖注入 因为是通过getObject方法生成,无法直接注入依赖
获取方法 需要在BeanName前加 '&' 直接用BeanName

你可能感兴趣的:(Spring - BeanFactory 之 FactoryBeanRegistrySupport)