Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jakarta ee 理解ejb3与JTA的关系_Jakarta Ee_Jpa_Ejb 3.0_Jta - Fatal编程技术网

Jakarta ee 理解ejb3与JTA的关系

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编程模型是各种不同技术的组合,随着时间的推移,各种功能或被分离出来,以便在不使用

我想了解ejb3和JTA的关系。 JEE应用服务器可以实现JTA而不实现EJB3吗?
如果我的代码运行在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。我编辑了答案,试图消除歧义。