2015-04-25 101 views
0

我正在理解ejb3和JTA关系。 JEE应用服务器可以不用实现EJB3来实现JTA吗? 如果我的代码在JBoss 7上运行,那么使用JTA和JPA(没有ejb注释)注释来处理事务是不够的?了解ejb3和JTA关系

回答

0

是的,应用程序服务器可以在没有EJB的情况下实现JTA。是的,如果您的应用程序服务器只需要事务,那么EJB中的容器管理事务支持可能不足以引起足够的理由来使用EJB编程模型,特别是如果您有权访问支持@Transactional注释的应用程序服务器。

EJB编程模型是各种不同技术的组合,随着时间的推移,各种功能被拆分出来,因此可以在没有整个EJB编程模型的情况下使用它们(例如,用于容器管理的@Transactional事务或JSR 236对EJB定时器的某些用途)或正在逐步淘汰(例如,实体bean被JPA替代,或者远程EJB在行业转向REST时不那么重要)。作为一名应用程序开发人员,您必须尝试在使用编程模型之间找到一个最佳位置,这样可以提高工作效率,而无需使用太多的编程模型,只能在大型/单片应用程序服务器上运行,而且开销很大。如果您因为其他原因需要EJB,那么使用它的容器管理事务可能是有意义的,但是如果您不需要,那么它可能不会。

+0

恐怕EJB是JEE规范的一部分,所以没有JEE兼容的应用程序服务器,它只实现JTA。 –

+0

@AndreiI我打算突出显示像WebSphere Application Server Liberty概要文件这样的服务器,它可以使用CDI'@ Transactional'运行,但不包含EJB。我编辑了答案,试图消除歧义。 –