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

第8章 Spring(二)

8.11 Spring 中哪些情况下,不能解决循环依赖问题

难度:★★

重点:★★

白话解析

有一下几种情况,循环依赖是不能解决的:

1、原型模式下的循环依赖没办法解决;

  • 假设Girl中依赖了Boy,Boy中依赖了Girl;在实例化Girl的时候要注入Boy,此时没有Boy,因为是原型模式,每次都要重新创建,好了现在重新创建Boy;

  • 这个时候Boy也要依赖Girl,也是创建新的Girl;这个新的Girl又要创建新的Boy,完了,死循环了。

2、构造器注入的时候

  • Girl实例在创建时,由于是构造注入,这时会触发Boy的加载。

  • Boy实例在创建时,又会触发Girl的加载,这个时候,Girl还没有添加到三级缓存中,所以就会创建一个全新的Girl。这样,就会进入一个死循环。

  • 根本原因是因为构造器注入发生在存入三级缓存之前。实例还没有添加到三级缓存之前就开始属性注入了,那一直找不到,不就死循环了嘛。

3、单例代理Bean在使用了@Async注解的场景下,通过Set注入也会出现循环依赖不能解决的情况(有时候能解决,有时候解决不了)

http://www.lryc.cn/news/180312.html

相关文章:

  • 从0开始python学习-24.selenium 浏览器常见的操作
  • Canal实现数据同步
  • 数据库学习笔记——DDL
  • MATLAB算法实战应用案例精讲-【人工智能】边缘计算(附python代码实现)
  • 精彩回顾 | 迪捷软件亮相2023世界智能网联汽车大会
  • 【ShaderLab PBR 嗜血边缘角色_美式朋克风格_“Niohoggr“_角色渲染(第一篇)】
  • python经典百题之围圈报数
  • Google Earth Engine(GEE)案例——如何去除和过滤Landsat和sentinel等系列影像集合中的空影像(三种方法)
  • Leetcode 69.x的平方根
  • Node18.x基础使用总结(二)
  • LCD 的RGB接口(SYNC Mode/ SYNC-DE Mode/ DE Mode)
  • flink生成水位线记录方式--周期性水位线生成器
  • 百度资源搜索平台出现:You do not have the proper credential to access this page.怎么办?
  • 树莓派CM4开启I2C与UART串口登录同时serial0映射到ttyS0 开启多串口
  • 【租车骑绿道】python实现-附ChatGPT解析
  • 【ONE·Linux || 多线程(一)】
  • 华为智能企业上网行为管理安全解决方案(1)
  • Acwing 240. 食物链
  • c++ 容器适配器
  • 正则表达式的应用领域及基本语法解析
  • CIP或者EtherNET/IP中的PATH是什么含义?
  • 使用lombok进行bulider之后调取HashMap的自定义方法进行对象操作报空指针异常(pojo也适用)
  • 矩阵-day14
  • 上古神器:十六位应用程序 Debug 的基本使用
  • [学习笔记]ARXML - Data Format
  • Go_原子操作和锁
  • 初识Java 12-1 流
  • 【软件工程_UML—StartUML作图工具】startUML怎么画interface接口
  • 单片机之瑞萨RL78定时计数器
  • 手机号码格式校验:@Phone(自定义参数校验注解)