spring--FactoryBean和BeanFactory有关系吗
BeanFactory 和 FactoryBean 是 Spring 框架中的两个不同的概念,两者是雷锋和雷峰塔的关系,就是没有任何关系,它们在 Spring 的依赖注入和 bean 创建过程中扮演不同的角色:
BeanFactory:
BeanFactory是 Spring 的一个核心接口,它是 Spring IoC 容器的基础设施部分,负责管理 beans 的生命周期,包括 bean 的创建、配置、装配以及管理。BeanFactory提供了最基础的形式的容器,可以通过它获取 beans,但是它的功能相对简单,并且不支持一些高级特性,如注解处理、事件发布等。- 在 Spring 中,通常使用
ApplicationContext接口的实现(如ClassPathXmlApplicationContext或AnnotationConfigApplicationContext),它扩展了BeanFactory,提供了更多的企业级功能。
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有关系吗的更多相关文章
- Spring FactoryBean和BeanFactory 区别
1 BeanFactory 是ioc容器的底层实现接口,是ApplicationContext 顶级接口 spring不允许我们直接操作 BeanFactory bean工厂,所以为我们提供了App ...
- Spring中的BeanFactory与FactoryBean看这一篇就够了
前言 理解FactoryBean是非常非常有必要的,因为在Spring中FactoryBean最为典型的一个应用就是用来创建AOP的代理对象,不仅如此,而且对理解Mybatis核心源码也非常有帮助!如 ...
- Spring高级特性之四:FactoryBean和BeanFactory
FactoryBean和BeanFactory两只是两个单词顺序不同但是内容大不相同.落脚点在后面一个单词,前面一个单词是其功能描述:FactoryBean--工厂bean,一个建工厂的bean?Be ...
- 转:Spring系列之beanFactory与ApplicationContext
原文地址:Spring系列之beanFactory与ApplicationContext 一.BeanFactoryBeanFactory 是 Spring 的“心脏”.它就是 Spring IoC ...
- Spring IOC、对象依赖关系
Spring IOC.对象依赖关系 2016-09-21 01:36 414人阅读 评论(0) 收藏 举报 本文章已收录于: 版权声明:本文为博主原创文章,未经博主允许不得转载. 引入 Strut ...
- 一文带你解读Spring5源码解析 IOC之开启Bean的加载,以及FactoryBean和BeanFactory的区别。
前言 通过往期的文章我们已经了解了Spring对XML配置文件的解析,将分析的信息组装成BeanDefinition,并将其保存到相应的BeanDefinitionRegistry中,至此Spring ...
- spring中的BeanFactory与ApplicationContext的作用和区别?
BeanFactory类关系继承图 1. BeanFactory类结构体系: BeanFactory接口及其子类定义了Spring IoC容器体系结构,由于BeanFactory体系非常的庞大和复杂, ...
- 转:Spring FactoryBean源码浅析
http://blog.csdn.net/java2000_wl/article/details/7410714 在Spring BeanFactory容器中管理两种bean 1.标准Java Bea ...
- Struts2,Hibernate和Spring之间的框架整合关系
1.首先要认清,hibernate和struts没有半点关系,所以他们之间没有任何可以整合的东西.a:struts 作为中心控制器,肯定要调用一些类来完成一些逻辑.而hibernate开发中,经常使用 ...
- Spring SpringBoot和SpringCloud的关系
Spring SpringBoot和SpringCloud的关系 Spring Cloud 是完全基于 Spring Boot 而开发,Spring Cloud 利用 Spring Boot 特性整合 ...
随机推荐
- 解决 VM with version 2.1.0 has multidex support ; VM has multidex support, MultiDex support library is disabled.问题
发布打包完之后,android studio提示 VM with version 2.1.0 has multidex support I/MultiDex: installI/MultiDex: V ...
- JMeter变量和调试取样器
变量 可以在测试计划中定义变量 可以通过${变量名}进行调用 调试取样器可以看到变量参数
- MySQL|MySQL事物以及隔离级别
MySQL 事务主要用于处理操作量大,复杂度高的数据.比如开单,需要添加给订单表增加记录,还需要增加订单的各种相关明细,操作复杂度高,这些操作语句需要构成一个事务.在 MySQL 命令行的默认设置下, ...
- 带你聚焦GaussDB(DWS)存储时游标使用
摘要:游标是一种数据处理方法,提供了在查询结果集中进行逐行遍历浏览数据的方法,也可以将游标当做上下文区域的句柄或者指针,借助游标对指定位置的数据进行查询与处理. 本文分享自华为云社区<Gauss ...
- 探索开源工作流引擎Azkaban在MRS中的实践
摘要:本文主要介绍如何在华为云上从0-1搭建azkaban并指导用户如何提交作业至MRS. 本文分享自华为云社区<开源工作流引擎Azkaban在MRS中的实践>,作者:啊喔YeYe. 环境 ...
- 手绘流程图讲解spark是如何实现集群的高可用
摘要:本文讲述spark是怎么针对master.worker.executor的异常情况做处理的. 本文分享自华为云社区<图解spark是如何实现集群的高可用>,作者:breakDawn. ...
- 云图说|Git云上仓库哪家好?一张图了解华为云代码托管服务
阅识风云是华为云信息大咖,擅长将复杂信息多元化呈现,其出品的一张图(云图说).深入浅出的博文(云小课)或短视频(云视厅)总有一款能让您快速上手华为云.更多精彩内容请单击此处. 摘要: 云办公时代已然到 ...
- iOS App的打包和上架流程
转载:iOS App的打包和上架流程 - 掘金 1. 创建账号 苹果开发者账号几种开发者账号类型 个人开发者账号 费用:99 美元/年(688.00元) 协作人数:仅限开发者自己 不需要填写公司的 ...
- 如何把ipa文件(iOS安装包)安装到iPhone手机上? 附方法汇总
苹果APP安装包ipa如何安装在手机上?使用过苹果手机的人应该深有感触,那就是苹果APP安装要比安卓APP安装复杂.困难很多,很多人不知道怎么把ipa文件安装到手机上,所以很多苹果用户还会选择越狱 ...
- 如何用AB测试完善产品激励体系
更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 用户激励体系,也称用户激励机制,是为了让用户持续使用产品,而设计的一套对应规则.在用户激励体系建立过程中,产品可以 ...