了解JTA Spring和Bitronix

Dej*_*ell 2 java spring hibernate jta

我想了解JTA,Spring和Bitronix之间的区别是什么?

Hibernate持久化中的事务应该用什么?

axt*_*avt 12

  • JTA是用于分布式事务管理的API.它可以作为应用程序服务器的一部分或作为独立的事务管理器实现.

  • Bitronix事务管理器是JTA的独立实现.

  • Spring是一个框架,提供(以及其他功能)统一的事务管理接口.特别是,Spring管理的事务可以使用JTA实现作为后端.

换句话说,在典型的Spring和Hibernate应用程序中,您使用Spring事务支持管理事务,Spring配置为使用后端事务管理器之一:

  • 如果您不需要分布式事务,请使用Hibernate自己的事务支持(HibernateTransactionManager)
  • 如果需要分布式事务,请使用JTA事务(JtaTransactionManager).特别是:
    • 在一个成熟的应用程序服务器上JtaTransactionManager使用内置的JTA实现
    • 在独立环境(例如Tomcat等)中,您需要配置独立的JTA实现,例如Bitronix.

  • @Odelya:分布式事务分布在多个事务资源(例如数据库和消息队列)上。如果您只有一个数据库,则不需要它们。成熟的应用服务器是指 JBoss、WebSphere 和 WebLogic 等产品,与 Tomcat 和 Jetty 等 servlet 容器形成对比。 (2认同)