BeanFactory 和 FactoryBean 总混,核心区别其实很简单

74次阅读
没有评论

学 Spring 时,BeanFactory 和 FactoryBean 是最容易混淆的一组名词。一个是容器本身,一个是放在容器里的特殊工厂对象,只要先分清这一层,后面的源码和使用方式就顺了。

BeanFactory 是 Spring 容器的基础接口

它负责管理 Bean 的创建、查找和生命周期,是“容器怎么管对象”的问题。你可以把它理解成整个对象工厂体系的底座。

FactoryBean 是一个特殊的 Bean

它本身也会被 Spring 管理,但它的职责是帮你创建另外一种对象,常用于那些实例化过程复杂、需要自定义构建逻辑的场景。

最容易记的区别是“谁在管谁”

BeanFactory 管所有 Bean;FactoryBean 只是其中一个被管理的成员,只不过它额外承担了“生产对象”的职责。一个是容器角色,一个是普通对象角色。

获取结果时还要记住一个细节

从容器里按名称获取 FactoryBean 时,默认拿到的通常是它生产出来的对象;如果你想拿到 FactoryBean 自己,通常需要使用带前缀的方式显式区分。

结论

BeanFactory 是容器接口,FactoryBean 是容器里的特殊工厂 Bean。把它们理解成“管理者”和“生产者”的区别,基本就不会再混。

正文完
 0
bdspAdmin
版权声明:本站原创文章,由 bdspAdmin 于2026-04-24发表,共计506字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(没有评论)