如何在不编写并发逻辑的情况下使用Spring返回Future对象?

Joh*_*han 4 java concurrency spring java-ee-6

如何返回java.util.concurrent.Future带有Receipt对象的对象并仅使用@javax.ejb.Asynchronous注释?

我需要任何额外的配置让Spring处理ejb注释吗?

我不想自己编写任何并发逻辑.

这是我的尝试不起作用:

@Asynchronous
public Future<Receipt> execute(Job job) {
    Receipt receipt = timeConsumingWork(job);
    return receipt;
}
Run Code Online (Sandbox Code Playgroud)

Esp*_*pen 6

只要您的配置正确,您需要做的就是返回一个新的AsyncResult对象,并将收据作为输入参数.

@Asynchronous
public Future<Receipt> execute(Job job) {
    Receipt receipt = timeConsumingWork(job);
    return new AsyncResult<Receipt>(receipt);
}
Run Code Online (Sandbox Code Playgroud)

春天同时处理@Async@Asynchronous<task:annotation-driven />元素.