Error creating bean with name “****“ 依赖循环问题(添加@Async启动包错)

1.什么是循环依赖?

它发生在bean A依赖于另一个bean B时,bean B依赖于bean A:

豆A→豆B→豆A
spring 注入不小心就会出现这种问题。

2.我在某个service的实现类中 给方法加了个@Async(异步)注解就包错了

Error creating bean with name "": Requested bean is currently in creation: Is there an unresolvable circular reference?
创建名称为“
”的bean时出错:被请求的bean目前正在创建中:是否存在无法解决的循环引用?

3.从这张图可以推算应该是这三个类循环了,但其实不是在这里插入图片描述

他包错的原因是 一个高手写的好代码,他竟然自己注入自己。在没有异步方法的时候运气好没有包错
添加了异步方法就包依赖循环错误了。
在这里插入图片描述

4.两个或以上的类相互注入所报的错误。同样可能在没有添加@Async(异步)的时候不会包错,但添加就报错。

A (有异步) A注入B
B (有异步) B注入A , B注入C
C (无异步)C注入B
启动时 应该会报A出现依赖循环错误。这个有点绕想要,在循环的时候添加@Async是可以实现的
这个就得你自己去测试了。
当然也会有bug。不是启动的bug

解决方法:
1:不要@Async(异步)。 sb解决方式,我就是要用这个才添加@Async的
2:重构。使他们不再循环。 这个比较难。看你业务的逻辑了

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值