技术开发 频道

EJB 3.1五大模式改进令Java EE 6更好用

  异步会话Bean调用

  EJB 3.1引入了一个强大功能,那就是可以异步调用会话Bean方法。对于一个异步调用,允许会话Bean执行它的操作时,客户端并行处理其它事情。

  通过@Asynchronous注解让一个方法支持异步,也可以使用一个部署描述符将一个方法指定为异步的。

  异步方法可以返回一个java.util.concurrent.Future或void对象,Future对象容纳了异步操作返回的结果,你可以访问Future对象检索一个结果值,检查异常或取消一个正在处理中的调用。Future接口提供一个get()方法检索值,当然,你也可以其它合适的类检索值,如AsyncResult,实际上它自己实现了一个Future接口。

  在下面的例子中,performCalculation()方法是异步的,它使用AsyncResult类检索Future对象返回的值。

@Stateless
    
Public class CalculatorBean implements CalculatorService {
        ...
         @Asynchronous
      
public Future<Integer> performCalculation(...) {
            
// ... do calculation            Integer result = ...;
           return
new AsyncResult<Integer>(result);
        }
     }
0