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. selenium滚动加载数据解决方案

    有些网站时一直滚动就会加载新数据的,在selenium中解决方法: def loaddata_by_scroll(self, driver): js = 'return document.body.s ...

  2. 安卓之DocumentsProvider应用场景以及优劣分析

    文章摘要 本文深入探讨了安卓DocumentsProvider的应用场景,分析了其优势与不足,并提供了简单的代码实现.DocumentsProvider是安卓系统中用于文件存储与访问的关键组件,为应用 ...

  3. springboot产生非法状态异常+空指针

    springboot产生非法状态异常+空指针 描述:异常描述为在响应提交后不能执行senderror方法 解决方案: 不是,哥们,你不会真觉得有什么合适的解决方案吧,网上几波前辈大佬各说各的,和我的情 ...

  4. 从零玩转Websocket实时通讯服务之前后端分离版本

    前言 公司项目需要用到消息提示,那么WebSocket它来了经过我面向百度的学习,废话不多说直接开干. 后端搭建 一.依赖导入 <dependency> <groupId>or ...

  5. ubuntu frame 个人开发心得

    引言 有一次我在树莓派上安装 Ubuntu Core 我给创新创业项目开发一个可视化 gui 看板,用于展示数据. 然后我就找到了我需要的工具 Ubuntu Frame 初次尝试使用 Ubuntu F ...

  6. Centos 利用本地镜像安装yum源

    前提 在"设置"中确保两点 1.勾选"已连接" 2.添加上本地的"centos.iso"镜像文件 切换到用户目录 cd / 新建一个iso目 ...

  7. Feign源码解析4:调用过程

    背景 前面几篇分析了Feign的初始化过程,历经艰难,可算是把@FeignClient注解的接口对应的代理对象给创建出来了.今天看下在实际Feign调用过程中的一些源码细节. 我们这里Feign接口如 ...

  8. CodeForces 1082E Increasing Frequency 计数 递推 思维

    原题链接 题意 给我们一个长为n的序列A以及一个整数c,对这个序列的任何一个连续区间[l, r],我们可以给这个区间内的数统一加上一个我们任取的整数k. 要求我们只能做上述操作一次,问最终序列内最多有 ...

  9. Java 插入Excel页眉、页脚

    前言 在Excel文档中,我们常用页眉页脚来显示文档的附加信息,例如日期.公司名称.Logo或作者信息等.本文将通过Java程序来介绍如何给Excel文档添加页眉页脚.代码示例主要从以下几方面来演示添 ...

  10. 数据库运维家中常备:上限约400MB/s,比COPY等工具还好用的数据利器

    摘要:随着数据仓库业务的发展,GDS使用场景日益增多,这就要求GDS仍要不断迭代,充分深入挖掘用户需求,提高产品化程度. 1. GDS定位 GDS是GaussDB(DWS)提供的一个数据导入导出工具, ...