为什么@Async注解会导致循环引用问题?

Tob*_*bia 7 spring asynchronous autowired

这是我的豆子:

@Service
public class MyService{

   @Autowire
   private OtherService service;

   @Async
   public jobAync(){
      job();
   }
   public job(){
      ...
   }
}
Run Code Online (Sandbox Code Playgroud)

我无法理解为什么 jobAync 的 @Async 注释会导致 Spring 的循环引用问题,如果我删除该注释一切正常...我希望在自动装配中找到问题,但似乎与 @Async 相关联。

Tob*_*bia 0

我不知道这是否是最好的解决方案,但我使用两种不同的服务解决了问题,主要服务和异步服务:

@Service
public class MyService{

   @Autowire
   private OtherService service;

   public job(){
      ...
   }
}

@Service
public class MyServiceAsync{

   @Autowire
   private MyService myService;

   @Async
   public job(){
      myService.job();
   }
}
Run Code Online (Sandbox Code Playgroud)