Spring 为什么@Async注释会导致循环引用问题?
这是我的豆子:Spring 为什么@Async注释会导致循环引用问题?,spring,asynchronous,autowired,Spring,Asynchronous,Autowired,这是我的豆子: @Service public class MyService{ @Autowire private OtherService service; @Async public jobAync(){ job(); } public job(){ ... } } 我无法理解为什么jobAync的@Async注释会导致Spring的循环引用问题,如果我删除该注释,一切都会正常。。。我希望在autowires中发现问题
@Service
public class MyService{
@Autowire
private OtherService service;
@Async
public jobAync(){
job();
}
public job(){
...
}
}
我无法理解为什么jobAync的@Async注释会导致Spring的循环引用问题,如果我删除该注释,一切都会正常。。。我希望在autowires中发现问题,但似乎与@Async有关。我不知道这是否是最佳解决方案,但我用两种不同的服务解决了问题,一种是主服务,另一种是异步服务:
@Service
public class MyService{
@Autowire
private OtherService service;
public job(){
...
}
}
@Service
public class MyServiceAsync{
@Autowire
private MyService myService;
@Async
public job(){
myService.job();
}
}
嗨,这就是@async导致循环引用错误的原因: AsyncConfigurer配置类在应用程序上下文引导的早期进行初始化。如果您需要任何对其他bean的依赖,请确保尽可能将它们声明为“懒惰”,以便让它们也通过其他后处理器 您可以将@lazy添加到其他bean中该bean的注入点