Spring事务--@Transactional(propagation = Propagation.REQUIRES_流程
2022-11-20 21:20:20 0 举报
Spring事务传播propagation = Propagation.REQUIRES执行流程图
作者其他创作
大纲/内容
a方法执行完后没有在进行传播,就执行resume()方法将test方法的事务恢复
Spring事务管理器再重新创建数据库连接(再重复执行前面的流程)
test事务提交或回滚
test方法开启事务
代理对象执行test方法的逻辑,这里面就会去执行sql1,sql2,。。。;然后再执行a()方法,之后再执行sql。。。
这时a方法开启事务之前会先执行suspend()方法将test方法的事务先挂起(也就是将test方法对应的数据库连接conn从ThreadLocal中移除,移除就是将test方法的事务封装成一个挂起对象以便后面恢复使用)
继续执行test事务未完成的步骤
执行完后提交或者回滚
方法a又会重新开启一个事务
0 条评论
回复 删除
下一页