6.Factorybean与Beanfactory区别

FactoryBean 和 BeanFactory 在Spring框架中是两个完全不同的概念,它们各自承担着不同的职责:

用途:

BeanFactory 是Spring IoC容器的核心接口,负责管理Bean的生命周期和依赖注入。

FactoryBean 是一个特殊的Bean,充当其他Bean的工厂,用于自定义Bean的创建过程。
创建对象:

BeanFactory 负责创建Bean对象,是Spring中最基本的工厂,用于提供和管理所有的Bean。

FactoryBean 是一个Bean,它的实例本身是一个工厂,负责创建其他Bean的实例。
自定义性:

BeanFactory 通常不需要自定义实现,而是由Spring框架提供的,比如 DefaultListableBeanFactory 或 XmlBeanFactory。

FactoryBean 需要自定义实现,您需要编写一个类实现 FactoryBean 接口,并重写 getObject 方法来定义Bean的创建逻辑。
懒加载:

BeanFactory 默认支持懒加载,可以配置Bean的延迟初始化。

FactoryBean 可以通过返回代理对象来实现懒加载,控制何时创建实际的Bean实例。

获取Bean的方式:

从 BeanFactory 中获取普通的Bean,直接通过 getBean() 方法调用即可。
当获取 FactoryBean 管理的Bean时,实际上是获取 FactoryBean 实现类 getObject() 方法返回的对象。如果需要获取 FactoryBean 实例本身,则需要在Bean名称前加上 & 符号。
简而言之,BeanFactory 是Spring IoC容器用于管理所有Bean生命周期的基础设施,而 FactoryBean 是一种特殊的Bean,用于自定义或复杂逻辑的Bean创建过程。

相关推荐
Java后端的Ai之路1 小时前
RAG 还是 Agent 自主检索?Claude Code 删掉向量库之后,我把选型讲透了
开发语言·人工智能·prompt·agent·rag
starzy19901 小时前
深入理解Scala高阶函数:函数式编程核心
开发语言·scala
2601_962106646 小时前
【Java Set综合实战】商品管理系统 + 图书收藏系统|Product、Book自定义类全套代码
java
RuoyiOffice7 小时前
SpringBoot+Vue3 凭证生命周期设计:审核、过账、冲销与反过账怎样保持账目一致
java·spring boot·事务·springboot3·财务系统·会计凭证·ruoyi office
2601_962106647 小时前
HashMap入门|工号-姓名键值存储、两种遍历方式、根据key/value查
java
czq_26867194877 小时前
Python打卡第46天
开发语言·python
杨凯凡8 小时前
Spring Framework 7 API 版本管理实战:请求头路由、兼容迁移与废弃策略
java·rest api·springframework·spring boot 4·api版本管理
T_Wizard8 小时前
同一个问题写了 4 遍:官方 SDK / HTTP / Spring AI / LangChain4j,到底该选哪个
java·ai编程
hai_android8 小时前
AudioTrack 深度解析:从原理到实战
android·java·kotlin
斯维赤9 小时前
限流、熔断、降级,你真的分得清吗?
java·后端·架构