怎么解决项目出现循环依赖的问题呢?

Blade 未结 3 1462

一、该问题的重现步骤是什么?

1. A的实现类依赖了B,B的实现类又依赖了A就会启动失败,原因就是互相依赖造成的,虽然把两组业务实现完全分离能解决问题,但是这样做感觉业务也别扭,有没有别的方式呢?spring.datasource.initialize=false这是网上搜到的一种解决方式,但是好像由于版本原因已经失效了

2. 

3.下面是代码image.png


二、你期待的结果是什么?实际看到的又是什么?

     解决互相依赖造成无法启动服务的问题

三、你正在使用的是什么产品,什么版本?在什么操作系统上?

boot版本  win10

四、请提供详细的错误堆栈信息,这很重要。


五、若有更多详细信息,请在下面提供。

3条回答
  • 2020-11-03 10:57

    循环依赖是要靠架构层主动设计来规避的。你可以写一个中间的公共service C给A和B来依赖。C不要依赖A B。

    0 讨论(0)
  • 2020-12-17 17:07

    使用@Lazy解决 靠谱吗

    0 讨论(1)
  • 2024-02-17 10:14

    可以用bean的懒加载来解决 @AllArgsConstructor(onConstructor_ = {@Lazy})

    0 讨论(0)
提交回复