java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > spring解决循环依赖问题

spring如何解决循环依赖问题

作者:loveLifeLoveCoding

Spring在单例模式下用三级缓存设计解决setter方法注入bean属性循环依赖问题,但无法解决多例Bean和构造方法注入参数的循环依赖,三级缓存通过A、B两对象互相注入属性的过程解决循环依赖,其中,构造方法的循环依赖无法解决是因为创建对象会走构造方法

spring解决循环依赖

Spring 中使用了三级缓存的设计,来解决单例模式下的属性循环依赖问题。

解决的只是单例模式下 setter 方法注入bean属性循环依赖问题,

对于多例 Bean 和 构造方法注入 参数的循环依赖问题,并不能使用三级缓存设计解决。

缓存变化过程

为什么不能解决非单例、构造方法的循环依赖问题

为什么不能解决构造方法的循环依赖?

为什么不能解决多例的循环依赖?

解决方法

避免循环依赖:

引入第三个类C, A 和 B 都依赖 C, 而不是相互依赖

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文