[豪の学习笔记] Spring框架学习碎碎念#3
事务管理
事务是一组操作的集合,它是一个不可分割的工作单位,这些操作要么同时成功,要么同时失败
//开启事务(一组操作开始前,开启事务)
start transaction / begin ;
//提交事务(这组操作全部成功后,提交事务)
commit ;
//回滚事务(中间任何一个操作出现异常,回滚事务)
rollback ;
Spring事务管理
- 注解:@Transactional
- 位置:Service层的方法上、类上、接口上
- 作用:将当前方法交给Spring进行事务管理,方法执行前开启事务;成功执行完毕则提交事务;执行出现异常则回滚事务
#spring事务管理日志
logging:
level:
org.springframework.jdbc.support.JdbcTransactionManager: debug
rollbackFor:默认情况下只有出现RuntimeException才回滚异常,rollbackFor属性用于控制出现何种异常类型,回滚事务
@Transactional(rollbackFor = Exception.class)
propagation:事务传播行为,指的是当一个事务方法被另一个事务方法调用时,这个事务方法应该如何进行事务控制
@Transactional(propagation = Propagation.REQUIRED)
| 属性值 | 含义 |
|---|---|
| REQUIRED | 默认值,需要事务,有则加入,无则创建新事物 |
| REQUIRES_NEW | 需要新事物,无论有无,总是创建新事物 |
| SUPPORTS | 支持事务,有则加入,无则在无事务状态中运行 |
| NOT_SUPPORTED | 不支持事务,在无事务状态下运行 如果当前存在已有事务则挂起当前事务 |
| MANDATORY | 必须有事务,否则抛异常 |
| NEVER | 必须没事务,否则抛异常 |

浙公网安备 33010602011771号