Spring 事务 - 基本使用、传播机制、失效场景、嵌套事务多回滚解决

目录

一、Spring 事务的使用

1.1、编程式事务(了解即可)

1.2、注解实现声明式事务

1.2.1、@Transactional 注解的使用

1.2.2、参数说明

1.2.3、声明式事务对异常的处理

1.2.3、@Transational 的工作原理

二、Spring 事务的传播机制

2.1、事务传播机制是什么?

2.2、事务的传播机制有什么作用

2.3、事务的传播机制中有哪些?

2.3.1、支持当前调用链上的事务

2.3.2、不支持当前调用链上的事务

2.3.3、嵌套事务

2.4、代码示例

2.4.1、支持当前事务(REQUIRED)示例

2.4.2、嵌套事务示例 

三、Spring 事务失效场景

3.1、访问权限

3.2、方法被 final 修饰

3.3、未被 Spring 管理

3.4、多线程(不在同一个线程下)

3.5、表不支持事务

3.6、事务没有开启

3.7、事务的传播机制

3.8、try catch

3.9、非 RuntimmeException 及其子类异常

3.10、自定义回滚异常

四、嵌套事务导致多回滚,如何解决?


一、Spring 事务的使用


1.1、编程式事务(了解即可)

Spring 编程式事务的使用主要有 3 个步骤:

  • 开启事务(获取事务):通过 Spring Boot 中内置的 DataSourceTransactionManager 的 getTransaction 方法,并搭配内置的 TransactionDefinition 实例作为方法的参数,来获取事务(此操作同时也会开启事务)。
  • 提交事务:DataSourceTransactionManager 创建出实例后,使用它的 commit 方法(参数是 getTransaction 方法的返回值,也就是 TransactionStatus,

你可能感兴趣的:(ssm,面试总结,spring,java,spring,boot,事务和事务传播机制)