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