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

相关推荐
小冷coding几秒前
【面试】结合项目整理的场景面试题,覆盖 Java 基础、锁、多线程、数据库、分布式锁 / 事务、消息中间件等核心维度
java·数据库·面试
鬼先生_sir几秒前
SpringCloud-GateWay网关
java·spring cloud·gateway
和小潘一起学AI1 分钟前
CentOS 7安装Anaconda
开发语言·python
努力努力再努力dyx13 分钟前
【无标题】
开发语言·python
卓怡学长14 分钟前
m319个人网站的设计与实现
java·数据库·spring·tomcat·maven·intellij-idea
傻小胖19 分钟前
Object.defineProperty() 完整指南
开发语言·前端·javascript
xyx-3v26 分钟前
qt创建新工程
开发语言·c++·qt
Zzj_tju29 分钟前
Java 从入门到精通(十二):File 与 IO 流基础,为什么程序“读写文件”时总是容易出问题?
java·python·php
小陈工34 分钟前
Python Web开发入门(十六):前后端分离架构设计——从“各自为政”到“高效协同”
开发语言·前端·数据库·人工智能·python
前进的李工1 小时前
MySQL用户管理与权限控制指南(含底层架构说明)
开发语言·数据库·sql·mysql·架构