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对象:

相关推荐
摇滚侠8 小时前
《SpringBoot 3:入门与应用实战》第 12 章 JDBC 与事务 使用 JdbcTemplate 阅读笔记 32
spring boot·笔记·后端
phltxy8 小时前
C语言操作符详解
java·c语言·算法
步行cgn9 小时前
@Configuration 详解:Spring 配置类的核心注解
java·后端·spring
sunshine22 girl9 小时前
Java学习一 环境配置2 安装和基本使用Idea
java·学习·intellij-idea
嘿嘿-6611 小时前
Windows 一键使用 GPT-6 Astra:Codex CLI 配置教程
java·人工智能·windows·gpt·chatgpt·web
桦说编程11 小时前
【AtomicAgent系列1】变异测试——过去做不起,现在 agent 做得起
后端·ai编程·vibecoding
考虑考虑12 小时前
nginx打印请求日志
运维·后端·nginx
策案案案12 小时前
YOLO: 将AI Agents嵌入到IntelliJ IDEA
java·大数据·人工智能·笔记·yolo·microsoft·intellij-idea
IT_陈寒12 小时前
Python的切片赋值把我坑惨了,这不是bug是特性
前端·人工智能·后端
CoderLiu12 小时前
程序化工具调用(PTC)与动态工作流引擎:深入大模型工具调用的架构演进与实践
前端·人工智能·后端