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

构造参数注入解决循环依赖问题

虽然Spring可以解决上边通过成员变量注入引发的循环依赖问题,但是通过构造参数注入引发的循环依赖问题是会报错。

如下图:

为什么上图中的循环依赖会报错呢?

因为创建C需要调用构造方法,而构造方法需要依赖D,此时C是无法实例化的,上边分析Spring解决循环依赖是通过延迟初始化,当出现循环依赖问题可以注入一个半成品,而这里连半成品都无法创建成功。

如何解决这种通过构造参数注入导致的循环依赖问题呢?

可以在C或D的任意一方注入另一方的代理对象而不是注入原始对象,如下:

假设在C的构造方法中注入D的代理对象可以写为:

在构造参数前加@Lazy注解,表示注入D的代理对象。

public C(@Lazy D d){
...
}
    http://www.dtcms.com/a/343463.html

    相关文章:

  1. 射频电路的完整性简略
  2. rt-thread使用sfud挂载qspi flash的trace分析
  3. Linux ELF二进制文件数字签名工具:原理与设计思路(C/C++代码实现)
  4. SQL聚合情景解读
  5. 【笔记】Facefusion3.3.2 之 NSFW 检测屏蔽测试
  6. 代码随想录算法训练营27天 | ​​56. 合并区间、738.单调递增的数字、968.监控二叉树(提高)
  7. 机器学习6
  8. 机器学习-聚类算法
  9. 告别研发乱局,决胜项目先机——全星APQP系统,为汽车部件制造商量身打造的数字化研发管理引擎
  10. GPT5 / 深度研究功能 无法触发
  11. 4.Shell脚本修炼手册---变量进阶知识
  12. 加速你的故障排查:使用 Elasticsearch 构建家电手册的 RAG 应用
  13. 如何实现文档处理全流程自动化?
  14. 如何在日常开发中高效使用 Copilot
  15. 无人机高科技,翱翔未来新天地
  16. 对比学习与先验知识引导的特征提取网络在胶质瘤高风险复发区域预测中的应用|文献速递-深度学习人工智能医疗图像
  17. GS-IR:3D 高斯喷溅用于逆向渲染
  18. 2025年08月21日Github流行趋势
  19. AI动画剧本、脚本、分镜头生成提示词
  20. 【Flutter】Container设置对齐方式会填满父组件剩余空间
  21. 【机器学习 / 深度学习】基础教程
  22. PyTorch数据处理工具箱(可视化工具)
  23. 嵌入式学习---(网络编程)
  24. burpsuite2022.11激活步骤【超详细】
  25. [系统架构设计师]通信系统架构设计理论与实践(十七)
  26. anaconda+python+pycharm+mysql
  27. 项目1总结其三(图片上传功能)
  28. 站长导航网站,网址导航网站大全,网址导航网站合集,网址导航网址目录,网址导航网站推荐,欢迎提交收录
  29. ICMP 协议分析
  30. 从零开发Java坦克大战Ⅱ (下)-- 从单机到联机(完整架构功能实现)