用于异步服务调用的Spring @Async或EJB @Asynchronous?

时间:2013-01-30 19:29:54

标签: java spring java-ee asynchronous ejb

我正在使用Hibernate JPA和Spring MVC开发项目,我正在研究实现异步服务,并且我意识到我分别从Spring和EJB获得了两个注释@Async或@Asynchronous。

这里的一切对我来说都是新的,我会选择EJB @Asynchronous,看看它是怎么回事,我想知道一个解决方案是否优于另一个?

1 个答案:

答案 0 :(得分:5)

@Async@Asynchronous的功能相同。它们都在单独的线程池中运行给定方法,并且它们都允许voidFuture<T>结果类型。它们之间没有功能上的区别。 Spring的唯一(次要)优势是您可以完全控制底层线程池,而使用@Asynchronous这可能是基于特定于容器的配置。

如果你的应用程序已经使用了Spring MVC,@Async似乎是一个自然的后果。