Spring boot @带有@Async的自动连线springboot依赖项注入未按预期工作

Spring boot @带有@Async的自动连线springboot依赖项注入未按预期工作,spring-boot,dependency-injection,autowired,Spring Boot,Dependency Injection,Autowired,我有一个springboot应用程序,其中我有下面提到的类(服务)之间的关系 我遇到了这个问题,类C中的方法不是异步执行的,具有下面提到的依赖性。但是当我注释掉类B中的@Autowired private C行,并调用类A中的asynchmethod()时,它是以异步方式执行的。有人能解释为什么会发生这种情况吗?这是一种循环依赖吗 没有错误或警告,只是它没有按预期异步执行 @Service Class A{ @Autowired private B b; @Autowired

我有一个springboot应用程序,其中我有下面提到的类(服务)之间的关系

我遇到了这个问题,类C中的方法不是异步执行的,具有下面提到的依赖性。但是当我注释掉类B中的
@Autowired private C
行,并调用类A中的
asynchmethod()
时,它是以异步方式执行的。有人能解释为什么会发生这种情况吗?这是一种循环依赖吗

没有错误或警告,只是它没有按预期异步执行

@Service
Class A{

  @Autowired
  private B b;

  @Autowired
  private C c;

  public void callMethod(){
   c.asyncMethod(); //expect to be async execution, but it is sync execution
  }

}

@Service
Class B{

  @Autowired
  private C c;

}

@Service
Class C{

  @Async
  public void asyncMethod(){
    //do something
  }

}

将日志记录设置为debug,您将在其中的某个地方看到一条消息,说明将急切地创建类c,并且不适合进行后处理。这是因为A同时需要B和C,B也需要C。将日志记录设置为debug,您将在其中的某个位置看到一条消息,说明将急切地创建类C,并且不适合进行后处理。这是因为A需要B和C,B也需要C。