了解 JTA Spring 和 Bitronix
我想了解 JTA、Spring 和 Bitronix 之间有什么区别?
Hibernate 持久化中的事务应该使用什么?
I am trying to understand what is the difference between JTA, Spring and Bitronix?
What should I use for transactions in Hibernate persistence?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
JTA 是一个用于分布式事务管理的 API。它可以作为应用程序服务器的一部分来实现,也可以作为独立的事务管理器来实现。
Bitronix 事务管理器是 JTA 的独立实现。
Spring 是一个为事务管理提供(以及其他功能)统一接口的框架。特别是,Spring 管理的事务可以使用 JTA 实现作为后端。
换句话说,在典型的 Spring 和 Hibernate 应用程序中,您使用 Spring 事务支持来管理事务,并且 Spring 配置为使用后端事务管理器之一:
HibernateTransactionManager< /code>)
JtaTransactionManager
)。尤其:JtaTransactionManager
使用内置 JTA 实现JTA is an API for distributed transaction management. It can be implemented as part of application server or as a standalone transaction manager.
Bitronix Transaction Manager is a standalone implementation of JTA.
Spring is a framework that provides (among other features) unified interface for transaction management. In particular, Spring-managed transaction can use JTA implementation as a backend.
In other words, in a typical Spring and Hibernate application you manage transactions using Spring transaction support, and Spring is configured to use one of backend transaction managers:
HibernateTransactionManager
)JtaTransactionManager
). In particular:JtaTransactionManager
uses built-in JTA implementation例如,当执行任何交易操作时,在同一时刻,应从一个帐户中扣除金额并添加到另一个帐户中。但有时如果第二次操作失败,则它不会回滚事务。它还有助于避免死锁情况。
For example, when any transaction operation performed, at the same instant of time, amount should be deducted from one account and added in another account. But some time if second operation fails, then it does not rolled back the transaction. It also helps to avoid deadlock situation.