我正在开发一个使用 Hibernate JPA 和 Spring MVC 的项目,我正在研究实现一个异步服务,我意识到我分别从 Spring 和 EJB 获得了两个注释 @Async 或 @Asynchronous。
这里的一切对我来说都是新的,我会选择 EJB @Asynchronous 看看它是如何进行的,我想知道一种解决方案是否比另一种更有优势?
我正在开发一个使用 Hibernate JPA 和 Spring MVC 的项目,我正在研究实现一个异步服务,我意识到我分别从 Spring 和 EJB 获得了两个注释 @Async 或 @Asynchronous。
这里的一切对我来说都是新的,我会选择 EJB @Asynchronous 看看它是如何进行的,我想知道一种解决方案是否比另一种更有优势?
@Async
并且@Asynchronous
在他们的能力上是相同的。它们都在单独的线程池中运行给定的方法,并且它们都允许void
和Future<T>
结果类型。它们之间没有功能上的不同。Spring 的唯一(次要)优点是您可以完全控制底层线程池,而@Asynchronous
这可能是在特定于容器的基础上配置的。
如果您的应用程序已经使用 Spring MVC,@Async
这似乎是一个自然的结果。