Spring中的事务管理:支持来自Spring还是容器?

时间:2018-01-27 18:18:44

标签: spring transactions spring-transactions

我试图理解Spring中的事务管理,我有些疑惑。

我在EJB world中了解了有关事务管理的内容,可以是CMTBMT。对于CMT,根据文档,管理交易的是Application server(例如JBOSS)。

现在,进入Spring事务管理,并考虑仅使用Web containerApache Tomcat),这是如何工作的?

Spring是否有自己的事务管理,能够处理local transactionglobal transaction(适用于2阶段提交)。底层container(在这种情况下是Apache tomcat)或框架支持是否需要实际支持?

我不清楚所有这些部分是如何组合在一起的。

任何人都可以帮我理解这个吗?

1 个答案:

答案 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使交易非侵入性,但不提供任何事务功能的实现。这有助于将东西粘合在一起,这是春天的主要内容。