spring 循环依赖

  • 属性注入、set方法注入
    spring内部会解决。解决方式: 假设A创建时,发现依赖 B对象后,会先创建依赖的 B对象。此时A对象还是个半成品。创建B时发现依赖A,会直接把半成品的B赋值给A。等B对象创建完,再回到A的创建流程里,把B对象赋值给A。

核心就是把依赖的对象先实例化出来一个半成品, 完成依赖关系的赋值操作。最后再把半成品对象补充完整。

  • @DependsOn导致的循环依赖、构造器注入导致的循环依赖
    spring无法解决。@dependsOn修饰的两个类,互相都要先于对方创建。无法解决; 构造器注入的是因为无法实例化。

  • 和代理对象产生的循环依赖
    可以解决,但是需要手动处理,比如修改类的名称,从而改变类的创建顺序。或使用lazy属性设置为true。

本文作者:森林中大鸟

本文链接:https://www.cnblogs.com/wenshichen/p/17417927.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   森林中大鸟  阅读(9)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 葡萄城 AI 搜索升级:DeepSeek 加持,客户体验更智能
· 什么是nginx的强缓存和协商缓存
· 一文读懂知识蒸馏
点击右上角即可分享
微信分享提示
💬
评论
📌
收藏
💗
关注
👍
推荐
🚀
回顶
收起
  1. 1 404 not found REOL
404 not found - REOL
00:00 / 00:00
An audio error has occurred.