为什么@Async注解子句是AopInvocationException?

Why @Async Annotation Clauses AopInvocationException?

这是一个代码片段:

@GetMapping("/account")
@SuppressWarnings("unchecked")
public UserDTO getAccount(Principal principal) {
    ...
    janitorService.cleanUp((AbstractAuthenticationToken) principal);
    ...
}

@Component
public class JanitorService {
  ...
  @Async
  public boolean cleanUp(AbstractAuthenticationToken authToken){
    ...
    return true;
  }

}

并且有一个异步配置 class。

org.springframework.aop.AopInvocationException: Null return value from advice does not match primitive return type for: public boolean com.mycompany.myteam.JanitorService.cleanUp(org.springframework.security.authentication.AbstractAuthenticationToken) 

去掉@Async后不会抛异常。我使用@Async 的原因是启动一个线程。为什么会导致异常?

对于带有 return 的 @Async 方法,return 应该是 Future<T> 而不是 T。 尝试 returning Future<Boolean> 资料来源:https://www.baeldung.com/spring-async