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

相关推荐
迷渡3 小时前
聊一聊 Bun 用 Rust 重写这件事
开发语言·后端·rust
古怪今人3 小时前
Gradle构建工具 Groovy/Kotlin DSL的现代化自动化构建工具
开发语言·kotlin·自动化
赏金术士3 小时前
Kotlin 协程与挂起函数(Coroutines & suspend)入门到实战
android·开发语言·kotlin
正儿八经的少年3 小时前
Spring Boot 两种激活配置方式的作用与区别
java·spring boot·后端
云烟成雨TD3 小时前
Spring AI Alibaba 1.x 系列【52】Interrupts 中断机制:节点执行前后静态中断
java·人工智能·spring
疯狂成瘾者4 小时前
Spring Boot 项目中的 SMTP 邮件验证码服务技术解析
java·spring boot·后端
y = xⁿ4 小时前
Java并发八股学习日记
java·开发语言·学习
xifangge20254 小时前
【深度排障】从 OS 底层寻址剖析 javac 不是内部或外部命令 核心报错:变量空间隔离与自动化部署终极范式
java·开发语言·jdk·自动化
肖恩想要年薪百万4 小时前
JSP中常用JSTL标签
java·开发语言·状态模式
l1t4 小时前
在aarch64机器上安装clang来生成codonjit python模块
开发语言·python