BeanFactoryFactoryBean 是 Spring 框架中的两个不同的概念,两者是雷锋和雷峰塔的关系,就是没有任何关系,它们在 Spring 的依赖注入和 bean 创建过程中扮演不同的角色:

  1. BeanFactory:

    • BeanFactory 是 Spring 的一个核心接口,它是 Spring IoC 容器的基础设施部分,负责管理 beans 的生命周期,包括 bean 的创建、配置、装配以及管理。
    • BeanFactory 提供了最基础的形式的容器,可以通过它获取 beans,但是它的功能相对简单,并且不支持一些高级特性,如注解处理、事件发布等。
    • 在 Spring 中,通常使用 ApplicationContext 接口的实现(如 ClassPathXmlApplicationContextAnnotationConfigApplicationContext),它扩展了 BeanFactory,提供了更多的企业级功能。
  2. FactoryBean:

    • FactoryBean 是一个接口,当你需要实现复杂的初始化逻辑或者需要返回不同的类型的实例时,可以实现 FactoryBean 接口。
    • 当一个 bean 实现了 FactoryBean 接口时,它将作为一个工厂来创建其他 beans。Spring 容器不直接返回 FactoryBean 实例,而是返回该 FactoryBean 创建的对象。
    • FactoryBean 接口定义了三个主要的方法:getObject()(返回由 FactoryBean 创建的 bean 实例)、getObjectType()(返回 FactoryBean 创建的对象类型)和 isSingleton()(指示由 FactoryBean 创建的对象是否是单例)。

简单来说,BeanFactory 是容器的一部分,负责提供 bean 实例;而 FactoryBean 是一个可以在容器中注册的特殊 bean,它本身也是一个 bean,但是使用它可以返回一个不同的对象实例。这种机制可以用来创建复杂的对象,或者根据不同的条件返回不同的对象实例。

举个例子,假设你想在 Spring 中创建一个复杂的 JNDI 资源对象,你可以创建一个实现了 FactoryBean 接口的 JNDI 资源工厂 bean,然后当其他部分的代码请求这个 bean 时,实际上返回的是工厂方法创建的 JNDI 资源对象,而不是工厂 bean 本身。

spring--FactoryBean和BeanFactory有关系吗的更多相关文章

  1. Spring FactoryBean和BeanFactory 区别

    1 BeanFactory 是ioc容器的底层实现接口,是ApplicationContext 顶级接口 spring不允许我们直接操作 BeanFactory  bean工厂,所以为我们提供了App ...

  2. Spring中的BeanFactory与FactoryBean看这一篇就够了

    前言 理解FactoryBean是非常非常有必要的,因为在Spring中FactoryBean最为典型的一个应用就是用来创建AOP的代理对象,不仅如此,而且对理解Mybatis核心源码也非常有帮助!如 ...

  3. Spring高级特性之四:FactoryBean和BeanFactory

    FactoryBean和BeanFactory两只是两个单词顺序不同但是内容大不相同.落脚点在后面一个单词,前面一个单词是其功能描述:FactoryBean--工厂bean,一个建工厂的bean?Be ...

  4. 转:Spring系列之beanFactory与ApplicationContext

    原文地址:Spring系列之beanFactory与ApplicationContext 一.BeanFactoryBeanFactory 是 Spring 的“心脏”.它就是 Spring IoC ...

  5. Spring IOC、对象依赖关系

    Spring IOC.对象依赖关系   2016-09-21 01:36 414人阅读 评论(0) 收藏 举报 本文章已收录于: 版权声明:本文为博主原创文章,未经博主允许不得转载. 引入 Strut ...

  6. 一文带你解读Spring5源码解析 IOC之开启Bean的加载,以及FactoryBean和BeanFactory的区别。

    前言 通过往期的文章我们已经了解了Spring对XML配置文件的解析,将分析的信息组装成BeanDefinition,并将其保存到相应的BeanDefinitionRegistry中,至此Spring ...

  7. spring中的BeanFactory与ApplicationContext的作用和区别?

    BeanFactory类关系继承图 1. BeanFactory类结构体系: BeanFactory接口及其子类定义了Spring IoC容器体系结构,由于BeanFactory体系非常的庞大和复杂, ...

  8. 转:Spring FactoryBean源码浅析

    http://blog.csdn.net/java2000_wl/article/details/7410714 在Spring BeanFactory容器中管理两种bean 1.标准Java Bea ...

  9. Struts2,Hibernate和Spring之间的框架整合关系

    1.首先要认清,hibernate和struts没有半点关系,所以他们之间没有任何可以整合的东西.a:struts 作为中心控制器,肯定要调用一些类来完成一些逻辑.而hibernate开发中,经常使用 ...

  10. Spring SpringBoot和SpringCloud的关系

    Spring SpringBoot和SpringCloud的关系 Spring Cloud 是完全基于 Spring Boot 而开发,Spring Cloud 利用 Spring Boot 特性整合 ...

随机推荐

  1. Navicat Premium多用户破解方法 12以上版本

    https://www.cnblogs.com/cgqplus/p/15267306.html 本文不提供注册机或者破解工具,本论坛多的是,搜索一下就好了. 本方法适用于多用户环境下使用,比如在服务器 ...

  2. [P2416 泡芙] 题解报告

    题目链接:P2416 泡芙 简化题意 给定一个无向图 \(G\),每条边有边权 \(0 / 1\),现给定 \(m\) 组询问,每次询问形如 \(s, t\),问是否可以从 \(s\) 走到 \(t\ ...

  3. (转)Harbor 启用镜像扫描功能方法

    A demo environment with the latest Harbor stable build installed. For additional information please ...

  4. 一些JavaSE学习过程中的思路整理(四)(主观性强,持续更新中...)

    目录 一些JavaSE学习过程中的思路整理(四)(主观性强,持续更新中...) 多线程编程:资源类&任务&运行机制的解耦合 关于重入锁(ReentrantLock)的细节 条件对象配合 ...

  5. MySQL系列:索引(B+Tree树、构建过程、回表、基本操作、执行计划、应用)

    介绍 https://dev.mysql.com/doc/refman/5.7/en/optimization-indexes.html 作用 优化查询 算法 索引的算法包括 BTree Hash R ...

  6. vscode搜索卡顿

    解决vscode搜索,编辑器卡死问题

  7. 云小课|GaussDB如何进行性能调优

    阅识风云是华为云信息大咖,擅长将复杂信息多元化呈现,其出品的一张图(云图说).深入浅出的博文(云小课)或短视频(云视厅)总有一款能让您快速上手华为云.更多精彩内容请单击此处. 摘要:GaussDB性能 ...

  8. 厚积薄发!华为云7篇论文被AAAI收录,2021年AI行业技术风向标看这里!

    摘要:近期,全球人工智能领域的顶级学术会议AAAI 2021将于2月2日-9日在线上召开,华为云的7篇AI科研成果被收录. 全球人工智能领域的顶级学术会议AAAI 2021将于2月2日-9日在线上召开 ...

  9. 云图说丨带你了解GaussDB(for Redis)双活解决方案

    摘要:GaussDB(for Redis)推出了双活解决方案,基于GaussDB NoSQL统一架构,通过两个数据库实例之间的数据同步,达成数据的一致性. 本文分享自华为云社区<[云图说]一张图 ...

  10. 2023年iOS App Store上架流程详解(上)

    ​ 很多开发者在开发完iOS APP.进行内测后,下一步就面临上架App Store,不过也有很多同学对APP上架App Store的流程不太了解,下面我们来说一下iOS APP上架App Store ...