spring三级缓存解决循环依赖
Published on 2023-04-14 14:10 in 暂未分类 with 乐多多多多多多

spring三级缓存解决循环依赖

参考链接:https://blog.csdn.net/m0_67393157/article/details/126116613

 

spring三级缓存是用来解决循环依赖问题的,目前循环依赖只在属性set注入并且单例的情况下才能解决,构造器注入和多例的循环依赖是无法解决的。

一.spring三级缓存

一级缓存:singletonObjects<ConcurrentHashMap<>>

二级缓存:earlySingletonObjects<HashMap<>>

三级缓存:singletonFactories<HashMap<>>

二.分析步骤

循环依赖示例:

复制代码
@Service
public class AService {
    private BService bService;
    public AService() {
        System.out.println("Aservice 构造方法执行---------");
    }
    public BService getbService() {
        return bService;
    }
    public void setbService(BService bService) {
        this.bService = bService;
    }
}


@Service
public class BService {
    private AService aService;
    public BService() {
        System.out.println("bService 构造方法--------");
    }
    public AService getaService() {
        return aService;
    }
    public void setaService(AService aService) {
        this.aService = aService;
    }
}
复制代码

当容器初始化加载两个beans时,会造成A,B相互依赖,查看bean生命周期,可以追踪bean循环依赖的解决过程。

三.源码解析

 

posted @   乐多多多多多多  阅读(82)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
/* 看板娘 */
点击右上角即可分享
微信分享提示