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

Spring的循环依赖

常见的Bean循环依赖的场景

第一种是两个Bean相互依赖

第二种是三个Bean相互依赖

第三种是自己依赖了自己

可以自己在开发工具中进行实践

创建一个项目,在创建两个类将其设置为Bean,让它们两个相互依赖

这样就是相互依赖了,但是这并不是说就是错误的这是一种field注入循环依赖,你的ioc容器可能会帮你解决掉,这个时候就需要我们自己告诉IOC容器进行解决。

在你的yml文件进行配置

除了上面这一种还可以通过构造器进行注入,这种就是构造器方式循环依赖,IOC容器不可以进行处理

解决循环依赖的方法

我们一般使用三级缓存进行解决

第一级缓存是已经实例化初始化的对象也就是成熟的对象是功能完毕的Bean

第二级缓存是实例化之后但没有完成属性注入初始化的Bean

第三级是生成原始对象类型aop操作后的代理对象

解决循环依赖的方法

主要遵循好了上面的规则就可以尽力避免循环依赖,尽量在编写代码的时候不要出现循环依赖,否则十分麻烦


http://www.kler.cn/a/512732.html

相关文章:

  • 程序员不可能不知道的常见锁策略
  • N个utils(sql)
  • SuperdEye:一款基于纯Go实现的间接系统调用执行工具
  • 【LeetCode100】--- 寻找重复数
  • 如何使用C++来实现OPENAI协议通过OLLAMA来与AI大模型通信
  • Linux 高级路由与流量控制-用 tc qdisc 管理 Linux 网络带宽
  • ERROR:This version of pnpm requires at least Node.js vXXX 的解决方案
  • QT:子控件VLC播放视频时,父控件无法截取鼠标事件
  • 2025.1.16——五、LoveSQL1 sqlmap文件类|万能密码
  • Text2Sql:开启自然语言与数据库交互新时代(30/30)
  • Docker私有仓库管理工具Registry
  • 基于PHP的校园兼职系统的设计与开发
  • Flink(八):DataStream API (五) Join
  • mac m1下载maven安装并配置环境变量
  • 【计算机视觉】人脸识别
  • 第11篇:从入门到精通:掌握python特殊方法与运算符重载
  • go语言之OOP特性和演示
  • Rust实现内网穿透工具:从原理到实现
  • C语言内存之旅:从静态到动态的跨越
  • ANSYS Fluent学习笔记(九)-实战案例-求解~
  • 软件测试 —— Postman(2)
  • 7. 计算机视觉
  • Hadoop•搭建完全分布式集群
  • 2025.1.20——一、[RCTF2015]EasySQL1 二次注入|报错注入|代码审计
  • LLMs之:ReaderLM-v2的简介、安装和使用方法、案例应用
  • 洛谷P1127 词链