Jakarta ee 理解ejb3与JTA的关系
我想了解ejb3和JTA的关系。 JEE应用服务器可以实现JTA而不实现EJB3吗?Jakarta ee 理解ejb3与JTA的关系,jakarta-ee,jpa,ejb-3.0,jta,Jakarta Ee,Jpa,Ejb 3.0,Jta,我想了解ejb3和JTA的关系。 JEE应用服务器可以实现JTA而不实现EJB3吗? 如果我的代码运行在JBoss7上,那么使用JTA和JPA(没有ejb注释)注释来处理事务还不够吗?是的,应用服务器可以在没有ejb的情况下实现JTA。是的,如果应用程序服务器只需要事务,那么EJB中容器管理的事务支持可能不是使用EJB编程模型的充分理由,特别是如果您可以访问支持@Transactional注释的应用程序服务器 EJB编程模型是各种不同技术的组合,随着时间的推移,各种功能或被分离出来,以便在不使用
如果我的代码运行在JBoss7上,那么使用JTA和JPA(没有ejb注释)注释来处理事务还不够吗?是的,应用服务器可以在没有ejb的情况下实现JTA。是的,如果应用程序服务器只需要事务,那么EJB中容器管理的事务支持可能不是使用EJB编程模型的充分理由,特别是如果您可以访问支持
@Transactional
注释的应用程序服务器
EJB编程模型是各种不同技术的组合,随着时间的推移,各种功能或被分离出来,以便在不使用整个EJB编程模型的情况下使用(例如,对于容器管理的事务,
@Transactional
,对于EJB计时器的某些使用,JSR 236)或者正在被淘汰(例如,实体bean被JPA取代,或者随着行业向REST的发展,远程EJB变得不那么重要)。作为一名应用程序开发人员,您必须尝试在使用编程模型之间找到一个平衡点,该模型可以使您的工作效率更高,而不必使用太多的编程模型,从而使您的应用程序只能在开销较大的大型/单片应用程序服务器上运行。如果您出于其他原因需要EJB,那么使用它的容器管理事务可能是有意义的,但是如果您不需要,那么它可能就没有意义了。我担心EJB是JEE规范的一部分,因此没有符合JEE的应用服务器,它只实现JTA。@AndreiI I打算突出显示像WebSphere Application Server Liberty profile这样的服务器,它可以使用CDI@Transactional
运行,但不使用EJB。我编辑了答案,试图消除歧义。