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创建过程。

相关推荐
卷毛的技术笔记9 分钟前
告别硬编码!Spring AI Alibaba 实现 AI Agent 智能工具调用(Tool Calling)
java·人工智能·后端·python·spring·ai编程
编程大师哥9 分钟前
匿名函数 lambda + 高阶函数
java·python·算法
isyangli_blog11 分钟前
OpenDayLight (Carbon 版本) 启动与组件安装
开发语言·php
vb20081119 分钟前
FastAPI APIRouter
开发语言·python
Benszen20 分钟前
KVM虚拟化解决方案
开发语言·perl
会编程的土豆22 分钟前
Go 语言反射(Reflection)详解
开发语言·后端·golang
東雪木24 分钟前
多线程与并发编程 专属复习笔记
java·开发语言·笔记·java面试
adrninistrat0r29 分钟前
Java调用链MCP分析工具
java·python·ai编程
杨充1 小时前
1.3 浮点型数据设计灵魂
开发语言·python·算法
噜噜噜阿鲁~1 小时前
python学习笔记 | 11.3、面向对象高级编程-多重继承
java·开发语言