Spring的FactoryBean多例问题

关于spring bean,我们了解的最多的还是单例,而多例bean,除了平时我们自己new的那些多实例外(但不属于IOC管理了),几乎很少能用到,而在spring 层面,FactoryBean刚好是多例的一个体现,在spring集成第三方框架时,往往能看到FactoryBean的身影。

FactoryBean默认创建是多例的,这里以mybatis的Mapper接口为例,fanfouMapper和demoMapper两者对应的MapperFactoryBean不是同一个实例,如下图:

原因也很简单,因为我们获取 FactoryBean是通过其getObject方法,而该方法依赖我们具体需要产生代理的接口,如果 FactoryBean是单例,那么所有Mapper都是一样了,肯定不行:

上面说的 FactoryBean是多例,主要是指MapperFactoryBean是多例即FactoryBean的实现类是多例。至于getObject返回的bean是不是多例,这个看具体实现,拿mybatis来讲,也是多例,每次都会创建新的MapProxy对象:

相关推荐
Mr YiRan3 分钟前
SYN关键字辨析,各种锁优缺点分析和面试题讲解
java·开发语言
IT_陈寒23 分钟前
从2秒到200ms:我是如何用JavaScript优化页面加载速度的🚀
前端·人工智能·后端
Zhang青山31 分钟前
028.爬虫专用浏览器-抓取#shadowRoot(closed)下
java·后端
bug攻城狮42 分钟前
SpringBoot响应封装:Graceful Response vs 自定义通用响应类选型指南
java·spring boot·后端·http
m0_736927041 小时前
Spring Boot项目中如何实现接口幂等
java·开发语言·spring boot·后端·spring·面试·职场和发展
系统毁灭者1 小时前
06-微服务架构与分布式事务
后端
再睡一夏就好1 小时前
【C++闯关笔记】使用红黑树简单模拟实现map与set
java·c语言·数据结构·c++·笔记·语法·1024程序员节
yolo_Yang1 小时前
72.是否可以把所有Bean都通过Spring容器来管
后端·spring
村姑飞来了2 小时前
Kafka4.1.0 队列模式尝鲜
后端·架构
rengang662 小时前
502-Spring AI Alibaba React Agent 功能完整案例
人工智能·spring·agent·react·spring ai·ai应用编程