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

时间:2010-05-24 20:26:26

标签: java spring concurrency java-ee-6

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

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

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

这是我的尝试不起作用:

@Asynchronous
public Future<Receipt> execute(Job job) {
    Receipt receipt = timeConsumingWork(job);
    return receipt;
}

1 个答案:

答案 0 :(得分:6)

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

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

Spring使用@Async元素处理@Asynchronous<task:annotation-driven />