【问题标题】:understanding ejb3 and JTA relation理解 ejb3 和 JTA 的关系
【发布时间】:2015-07-04 10:02:57
【问题描述】:

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

【问题讨论】:

    标签: jakarta-ee jpa ejb-3.0 jta


    【解决方案1】:

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

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

    【讨论】:

    • 恐怕EJB是JEE规范的一部分,所以没有JEE兼容的应用服务器,只实现JTA。
    • @AndreiI 我打算强调像 WebSphere Application Server Liberty 配置文件这样的服务器,它可以使用 CDI @Transactional 但没有 EJB 运行。我已经编辑了答案以尝试消除歧义。
    猜你喜欢
    • 1970-01-01
    • 2012-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-07
    • 2014-06-09
    • 2012-06-03
    相关资源
    最近更新 更多