SpringBoot002:循环依赖问题

===^^===

《榴芒客服系统》是我们工作室开发的在线客服系统,欢迎下载试用:

《榴芒客服系统》https://blog.csdn.net/look4liming/article/details/164755808

Spring为循环依赖问题设置了三级缓存。

当Spring发现BeanA依赖BeanB,BeanB又依赖BeanA时:

class A {

@Autowired

private B b;

}

class B {

@Autowired

private A a;

}

Spring会首先实例化BeanA,然后将其放入二级缓存,并标记好它是一个未完全装配好的Bean。

然后实例化BeanB,然后将BeanB的实例注入到BeanA中,再把BeanA的实例注入到BeanB中,然后移动到一级缓存中。

Setter注入和构造器注入无法解决循环依赖问题,会抛出BeanCurrentlyInCreationException。

三级缓存用户临时存储代理工厂产生的Bean,这些Bean还是会移动到一级缓存中。

相关推荐
雷一言说9 小时前
Spring AI 2.0 Tool Search:工具多了,只把相关的发给模型
spring
郭小李10 小时前
spring mvc 工作流程
java·spring·mvc
乌暮11 小时前
综合案例:宠物电商系统
java·开发语言·spring·mvc·restful·1024程序员节
万联WANFLOW11 小时前
Kimi K3.1 Pro 接口接入指南:模型选型、费用计算与零数据保留
java·spring boot·python·安全·spring·大模型
学到老活到老11 小时前
Spring 事务怎样生效?为什么加了 @Transactional 仍不回滚?
java·spring
学到老活到老11 小时前
Spring 怎样创建 Bean?@Autowired 在哪一步生效?
java·spring
木头科技12 小时前
【AI 工程化第十八篇】Spring AI 语音 Agent 实战:实时转写、WebSocket、流式 TTS 与打断机制
java·人工智能·安全·spring·性能优化
步行cgn12 小时前
Spring MVC 核心配置文件详解:springmvc.xml 每一行配置的意义
xml·spring·mvc
Flynn Liang14 小时前
Spring AI ChatClient 详解:system/user/assistant 角色、call 与 stream 到底怎么选
java·人工智能·spring·springai·流式输出·chatclient·java接入大模型
萧瑟余晖14 小时前
Spring Data Redis详解
spring·面试