Lazy loaded image
Spring
Spring - Transaction
Words 420Read Time 2 min
2025-4-16
2025-4-18
type
status
date
slug
summary
tags
category
icon
password

1、事务原理

Spring底层默认使用哪个事务管理器?默认使用JdbcTransactionManager; 原理: 1、事务管理器:TransactionManager;控制提交和回滚 2、事务拦截器:TransactionInterceptor:控制何时提交和回滚 completeTransactionAfterThrowing(txInfo, ex); 在这个时候回滚 commitTransactionAfterReturning(txInfo);在这个时候提交

2.事务细节

2.1 timeout

 
timeout(同timeoutstring》:超时时间,事务超时,秒为单位; 一旦超过约定时间,事务就会回滚。 超时时间是指:从方法开始,到最后一次数据库操作结束的时间。

2.2 readonly

如果该操作只读的话,开启事务的只读来优化。

2.3 rollbackFor

rollbackFor(同rollbackForClassName):指明哪些额外异常需要回滚。不是所有异常都一定引起事务回滚。 异常: 运行时异常(uncheckedexception【非受检异常】) 编译时异常(checkedexception【受检异常】) 回滚的默认机制: 运行时异常,回滚 编译时异常,不回滚 可以指定哪些异常需要回滚: 回滚=运行时异常+指定回滚异常

2.4 noRollbackFor

noRollbackFor(同noRollbackForClassName),指明哪些额外异常不需要回滚。 不回滚 =编译时异常 +指定不回滚异常

2.5 其他重要细节

propagation:传播行为 isolation:隔高级别

3.isolation:隔高级别

notion image
notion image
REPEATABLE_READ:可重复读。快照读。MySQL默认
READ_COMMITTED:读已提交。当前读。Oracle默认

4.propagation:传播行为

notion image
上一篇
如何用Notion+Vercel+Github搭建一个属于自己的个人博客?
下一篇
SpringMVC

Comments
Loading...