Springboot Async 引起的循环依赖
2023-12-20 19:37:01
Springboot Async 引起的循环依赖
问题
今天遇到一个问题,本地打包没问题,运行也没问题,但是上服务器部署的时候,报错 错误:
org.springframework.beans.factory.BeanCurrentlyInCreationException:
Error creating bean with name 'asyncConfigServiceImpl':
Bean with name 'asyncConfigServiceImpl' has been injected into other beans [componentConfigVersionServiceImpl]
in its raw version as part of a circular reference,
but has eventually been wrapped.
This means that said other beans do not use the final version of the bean. This is often the result of over-eager type matching - consider using 'getBeanNamesOfType' with the 'allowEagerInit' flag turned off, for example.
然后我的大致代码是这样的
@Service
@Slf4j
public class A {
@Autowired
private B b;
}
@Service
@Slf4j
public class B {
@Autowired
private A a;
@Override
@Async
public void asyncUploadFileToBoss( ) {
log.info("async start upload file ");
a.uploadFileToBoss();
log.info("async end upload file ");
}
}
在不加 @Async 注解的时候,是没问题的,但是加了这个注解就会报错,原因:涉及到了springboot的 依赖加载 的顺序问题,想知道具体原因大家可以搜一下看下,这里主要是说一下解决方案
很简单在
@Service
@Slf4j
public class A {
//这里加一个注解 @Lazy 就解决了
@Autowired
@Lazy
private B b;
}
文章来源:https://blog.csdn.net/BuildH/article/details/135113227
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!