Spring - BeanFactory 之 FactoryBeanRegistrySupport

FactoryBeanRegistrySupport


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

管理FactoryBean生产的单例

FactoryBeanRegistrySupport的成员变量:

private final Map<String, Object> 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
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容