首先,在Spring里面并没有提供事务,它只是提供了对数据库事务管理的封装。
通过声明式的事务配置,使得开发人员可以从一些复杂的事务处理中得到解脱,
我们不再需要关心连接的获取、连接的关闭、事务提交、事务回滚这些操作。
更加聚焦在业务开发层面。
所以,Spring里面的事务,本质上就是数据库层面的事务,
这种事务的管理,主要是针对单个数据库里面多个数据表操作的,去满足事务的ACID特性。
(如图)分布式事务,是解决多个数据库的事务操作的数据一致性问题,
传统的关系型数据库不支持跨库事务的操作,所以需要引入分布式事务的解决方案。
而Spring并没有提供分布式事务场景的支持,所以Spring事务和分布式事务在使用上并没有直接的关联性。
但是我们可以使用一些主流的事务解决框架,比如Seata,集成到Spring生态里面,去解决分布式事务的问题。