春季:如何在组件中制作一些非异步方法

时间:2019-03-14 15:32:38

标签: java spring asynchronous

我已经搜索了好几次,但都无济于事。

我想要一个带有某些@Async方法的Spring组件,而有些则没有。像这样:

@Component
public class MyComp {
  @Autowired private OtherComp delegate;
  @Async
  void doAsyncAction() { delegate.doAction(); }
  // non-Async
  Object getData() { return delegate.getSomeData(); }
}

不幸的是,调用getData方法时,委托为null。 我可以创建一种解决方法,该方法使用CompleteableFuture返回基准对象,但这是不必要的开销。

@Component
public class MyComp {
  @Autowired private OtherComp delegate;
  @Async
  void doAsyncAction() { delegate.doAction(); }
  @Async
  CompleteableFuture<Object> getData() { return CompleteableFuture.completedFuture(delegate.getSomeData()); }
}

有人知道更好的解决方法吗?

谢谢, 布莱恩

0 个答案:

没有答案