spring-事物源码分析
1.spring事物管理的实现原理
2.spring是如何控制事物的提交与回滚的?try/catch
2.spring事物管理的传播属性
3.事物的总结
spring事物管理的实现原理
猜想+验证
源码分析:
org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction()
例子:
@Transactional//开启事物
public void test(){
WfTest wfTest = new WfTest();
wfTest.setName("wftest");
save(wfTest);
update(6,"wftest6");
}
insert update 不会写数据表上去,写什么?事物日志 性能 原子性
commit 把日志中的sql刷新到数据库表上
rollback 在事物日志上GG
当业务方法抛出异常的时候,被catch到回滚事物
通过Try、Catch来控制事物的提交和回滚
第一步:获取事物的当前环境