美文网首页
spring事务管理

spring事务管理

作者: 呆呆猿 | 来源:发表于2020-07-25 21:35 被阅读0次

    原理是通过ThreadLocal实现的,看源码


    image.png

    先从transactionTemplate.execute开始


    image.png

    获取Transaction AbstractPlatformTransactionManager.getTransaction,
    一些事务的传播性,默认是TransactionDefinition.PROPAGATION_REQUIRED
    执行 startTransaction()方法

    image.png

    DataSourceTransactionManager.doBegin


    image.png

    绑定ConnectionHolder到ThreadLocal


    image.png

    再看来下dao层是如何获取Connection的
    执行update方法


    image.png

    看execute


    image.png

    DataSourceUtils.getConnection 获取Connection

    image.png

    TransactionSynchronizationManager.getResource(dataSource)就能获取到之前存入的ConnectionHolder了


    image.png

    相关文章

      网友评论

          本文标题:spring事务管理

          本文链接:https://www.haomeiwen.com/subject/lrzmlktx.html