美文网首页
解决spring bean之间循环依赖问题

解决spring bean之间循环依赖问题

作者: 土坡飞机 | 来源:发表于2021-04-19 00:19 被阅读0次

正统的方法

网上已经有很多文章来说明bean循环依赖的原因了.

总结就是先把bean放到三级缓存(singletonFactory)中,方便被依赖的bean可以读到它。

那解决的方法就是不用构造方法来初始化bean,用属性注入即可,因为用属性注入才会放到三级缓存里,也就是

@Autowired
private Service1 service1;

旁门左道的方法

可能有些项目大了,之前都是构造器注入,都改成属性注入又不好搞,所以有些旁门左道的方法:

  • 把两个bean融合,那就没有这问题了。(相当于没说)
  • 用发布订阅来搞(ApplicationEvent)。(没试过,应该行得通)
  • 用applicationContext.getBean(T.class)。 (有时确实这个方法是最靠谱的)

用发布订阅来搞的话,其实不太好,因为会增加项目的复杂度,本来直观能看到每个类或者bean在什么地方引用,但是用事件去处理时就不是很直观了。

相关文章

  • Spring核心之bean生命周期和三级缓存

    在使用spring框架的日常开发中,bean之间的循环依赖太频繁了,spring已经帮我们去解决循环依赖问题,对我...

  • 解决spring bean之间循环依赖问题

    正统的方法 网上已经有很多文章来说明bean循环依赖的原因了. 总结就是先把bean放到三级缓存(singleto...

  • spring 循环依赖处理

    解决 bean 之间的循环依赖分为2种: 构造函数注入导致的循环依赖发现这种情况, spring无解, 直接抛出 ...

  • spring getBean源码解析03

    spring中bean的生命周期 spring bean的作用域 spring 如何解决循环依赖 上面的示例中,A...

  • spring常见面试题

    1. spring中bean的循环依赖?怎么解决? 循环依赖:在进行getBean时,A对象去依赖B对象,而B对象...

  • Spring循环依赖的解决方案

    spring针对Bean之间的循环依赖,有自己的处理方案。关键点就是三级缓存。当然这种方案不能解决所有的问题,他只...

  • Spring的循环依赖问题

    什么是循环依赖 循环依赖也是循环引用,就是两个或多个Bean之间存在依赖关系,形成闭环 当Spring容器在创建A...

  • 好文章

    如何解决Spring bean 的循环依赖 https://zhuanlan.zhihu.com/p/186962...

  • Spring-bean的循环依赖以及解决方式

    本文主要是分析Spring bean的循环依赖,以及Spring的解决方式。 通过这种解决方式,我们可以应用在我们...

  • Spring-bean的循环依赖

    本文主要是分析Spring bean的循环依赖,以及Spring的解决方式。 通过这种解决方式,我们可以应用在我们...

网友评论

      本文标题:解决spring bean之间循环依赖问题

      本文链接:https://www.haomeiwen.com/subject/kbpblltx.html