当前位置: 首页 > news >正文

java面试:Spring是如何解决循环依赖问题的

Spring作为java开发的基础应用框架,能够解决许多的在开发当中存在的问题,而循环依赖就是其中一个,为了考察面试者技术的深度和能力的高低,因此这个问题在spring的面试当中是属于相当核心的,今天小编就和大家来分享一下这一块的知识。

1.什么是循环依赖

循环依赖是指一个或多个Bean之间存在的一个直接或者间接的依赖关系,构成一个循环调用,通常表现为三种形态,分别是互相依赖,间接依赖,自我依赖。

2.解决循环依赖的方法

Spring本身也考虑了这方面的问题,所以设计了三级缓存来解决这方面的问题,所谓三级缓存,就是用来存放不同类型的bean,一级缓存放的是完全初始化好的Bean可以直接使用,二级缓存存放的是最原始的Bean对象(Bean的属性还没有进行赋值或依赖注入),三级缓存存放的是Bean工厂的一个对象,用于生成原始的Bean对象并且放入到二级缓存当中,将Bean的实例化和属性依赖注入两个步骤分离了出来。

不过Spring的三级缓存只能解决单实例的循环依赖问题,还有四种情况需要我们去人为干预。

1.多实例的Setter注入导致的循环依赖,需要把Bean改成单例。

2.构造器注入导致的循环依赖问题,可通过@Lazy懒加载去解决。

3.DependsON导致的循环依赖,找到注解循环依赖的地方,迫使其停止。

4.单例的代理对象Setter注入导致的循环依赖。

可以使用@Lazy注解。

或者使用@DependsOn注解指定加载先后关系。

今天的分享就到这里了,希望这篇博客能给你一些帮助,让你对关于有了解过Spring是如何解决循环依赖的问题得到进一步的提升,在面试的时候能从容面对面试官。

http://www.jsqmd.com/news/466339/

相关文章:

  • 城市抢龙虾,大厂生龙虾,全民养龙虾!
  • 探讨2026年AI搜索推广公司排名,深圳光合道这类诚信公司选购要点 - 工业设备
  • 持相似性搜索和批量查询),结合增强生成技术(提示组装和参数调优)提升响应准确性。 MaxKB 支持本地模型存储(默认路径为 /... ...
  • dogonthemoon
  • AI 改造采购管理模块:四川本土数智化方案的技术实践与价值解
  • 打造高效易用的Agent Skill
  • AI「三阶段概率筛选流程」逆向适配结构
  • AI 改造 CRM 模块:四川本土数智化方案的技术创新与实践
  • 2026年评价高的水泥涵管品牌推荐:市政排水管水泥涵管优质供应商推荐 - 行业平台推荐
  • LVS TUN 模式
  • AI颠覆软件业,3000亿市值蒸发(附《华尔街日报》原文)
  • 探讨石材水景加工厂哪家更值得选,万磊石业好用不,费用多少? - 工业品牌热点
  • Sivers 的客户开始大规模量产 LiDAR 订单
  • 2026年正规的煤炭展会搭建公司推荐:教育展会搭建厂家选择指南 - 行业平台推荐
  • IO多路复用——select、poll与epoll
  • 自然语言录入销售合同:四川江油本土数智化的采购销售提效实
  • 2026年分析口碑好的水泥搅拌机,常州北奇机械优势凸显 - 工业推荐榜
  • 国内热处理设备生产厂家排名
  • CLI-Anything:一条命令把任意软件变成 AI Agent 原生工具,到底怎么做到的?
  • 彻底删除ANSYS许可管理器
  • 2026年 擦拭布厂家推荐排行榜,珠宝擦银布、无尘擦拭布、超细纤维擦拭布等精密清洁用品源头实力解析 - 品牌企业推荐师(官方)
  • 2026宁波市政道路划线优质服务推荐榜:路面划线/停车位划线/厂区划线/厂区道路划线/地面划线/市政道路划线/热熔标线/选择指南 - 优质品牌商家
  • 训练正常,测试异常,什么鬼?(cudnn)
  • 智宅摸鱼GEO方案解析:认知层,让AI读懂品牌的第一步
  • Agent中篇 | 揭秘agent智能体如何思考、决策,并自主执行任务
  • 球笼优质定制厂家哪个品牌好用,快来了解 - myqiye
  • 2026年口碑好的气膜滑冰馆公司推荐:气膜运动馆厂家实力哪家强 - 行业平台推荐
  • OpenClaw的配置文件配置
  • Deepseek为人服务,使人进步
  • 闲置永辉购物卡回收技巧,轻松兑现! - 团团收购物卡回收