了解JTA Spring和Bitronix

时间:2011-03-01 11:00:46

标签: java hibernate spring jta

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

我应该在Hibernate持久性中使用什么进行交易?

2 个答案:

答案 0 :(得分:9)

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

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

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

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

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

答案 1 :(得分:3)

  • JTA是一个java事务api。通过使用JTA,我们可以执行全局事务。
  • Bitronix是一款有助于实现JTA的软件。此外,它还有助于以序列化方式将数据存储到数据库中。

例如,当执行任何交易操作时,在同一时刻,应从一个帐户中扣除金额并将其添加到另一个帐户中。但是如果第二次操作失败,那么它不会回滚事务。它还有助于避免死锁情况。