我试图理解Spring中的事务管理,我有些疑惑。
我在EJB world
中了解了有关事务管理的内容,可以是CMT
或BMT
。对于CMT
,根据文档,管理交易的是Application server
(例如JBOSS)。
现在,进入Spring事务管理,并考虑仅使用Web container
(Apache Tomcat
),这是如何工作的?
Spring是否有自己的事务管理,能够处理local transaction
和global transaction
(适用于2阶段提交)。底层container
(在这种情况下是Apache tomcat)或框架支持是否需要实际支持?
我不清楚所有这些部分是如何组合在一起的。
任何人都可以帮我理解这个吗?
答案 0 :(得分:1)
Spring不包含任何类型的事务处理功能,它仅提供连接容器或独立库提供的事务功能的方法。
如果在Tomcat上运行应用程序并且不提供任何事务管理器库(如bitronix),则只能获得servlet容器提供的本地jdbc事务。
当您阅读https://docs.spring.io/spring/docs/4.2.x/spring-framework-reference/html/transaction.html处的项目符号时,会注意到Spring提供了抽象,这意味着它通过自己的apis提供访问权限并使用aop使交易非侵入性,但不提供任何事务功能的实现。这有助于将东西粘合在一起,这是春天的主要内容。