事务管理器的getTransaction流程
2021-10-05 16:39:04 0 举报
spring事务管理器的getTransaction流程
作者其他创作
大纲/内容
NOT_SUPPORT?
处理当前事务并返回事务
否
获取transaction objectObject transaction = doGetRansaction();该object可用来判断是否存在当前事务
REQUIRED或 REQUIRED_NEW或 NESTED
PROPAGATION_NEVER?
false
是
创建默认的DefualtTransactionDefinition
抛异常
REQUIRES_NEW?
直接加入事务并返回
默认true
根据define里定义的处理行为,做不同方式处理
status.createAndHoldSavePoint()
返回空事务的statu
MANDATORY?
封装事务到返回状态
回退到挂起的事务
返回1个不包含transObject(事务)的空状态
doGetRansaction()是抽象方法,各个实现类自己实现且模板类不会直接用transaction,只会作为参数传入,让各实现类自己去转化
是否允许嵌套事务?
获取Log类的deug信息即在模板里统一打印
是否允许用savePoint创建事务
根据transaction object判断是否存在当前事务
开启新的事务
启动新事务
NESTED?
检查逻辑:各子类自己实现,一般都是先转化object再用自己独有的判断逻辑去判断是否已存在当前事物
开启1个新事务
挂起当前事务suspend(transObject)
TransactionDefinition参数是否为空?
抛异常因为不允许不存在事务
SUPPORTS或REQUIRED?
新事务是否异常?
0 条评论
回复 删除
下一页