2010-05-24 39 views
4

如何使用收據對象返回java.util.concurrent.Future對象,並僅使用@javax.ejb.Asynchronous註釋?如何在不寫入併發邏輯的情況下使用Spring返回Future對象?

我是否需要額外的配置讓Spring處理ejb註釋?

我不想自己編寫任何併發邏輯。

這裏是我的嘗試不起作用:

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

回答

6

只要你的配置是正確的,所有你需要做的是返回一個新的AsyncResult對象憑收據作爲輸入參數。

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

春同時處理@Async@Asynchronous<task:annotation-driven />元素。

+0

我沒有看到import java.util.concurrent.AsyncResult - 我需要導入哪些內容才能使用它? – 2013-10-21 19:28:16

+0

javax.ejb.AsyncResult 是Java EE的一部分。它不在java.util.concurrent包中。另一種方法是使用SpringSource兼容的org.springframework.scheduling.annotation.AsyncResult 。它可以從這裏下載:http://ebr.springsource.com/repository/app/ – Espen 2013-10-30 11:16:13

相關問題