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

Jak*_*ako 5 java spring asynchronous ejb java-ee

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

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

Tom*_*icz 6

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

如果您的应用程序已经使用了Spring MVC,那么这@Async似乎是一种自然结果.