开启事务步骤:

1:JdbcConfig配置类中,创建事务管理器放到Spring容器中——添加 DataSourceTransactionManager对象
image.png
2:开启事务管理器——@EnableTransactionManagement
image.png
3:在业务层接口上添加Spring事务管理——@Transactional注解
image.png

Spring事务相关配置

前面知识点:对数据库增删改查自动开启事务
事务角色:
事务管理员:发起事务方,在Spring中通常指业务层开启事务的方法;
事务协调员:加入事务方,在Spring中通常指数据层方法,也可以是业务层方法。
image.png

@Transactional注解中与事务相关配置

image.png
注:@Transactional注解对于RuntimeException类型异常或者Error错误,Spring事务能够进行回滚操作。但是对于非运行时异常(编译时异常),Spring事务是不进行回滚的,所以需要使用rollbackFor来设置要回滚的异常。
@Transactional(rollbackFor = IOException.class)

事务传播行为

事务传播行为:事务协调员对事务管理员所携带事务的处理态度
image.png
事务传播行为指的是事务协调员(小弟)的行为。
image.png
默认为第一种REQUIRED

当大哥回滚事务时,小弟需要继续执行的时候常用REQUIRESNEW:
@Transactional(propagation = Propagation._REQUIRES_NEW
)