• Spring事务的实现方式和原理以及隔离级别?


    Spring事务的实现方式和原理以及隔离级别?

      在使用spring的时候,事务有两种形式,一种是编程式,一种是声明式。@Transactional就是声明式事务。

      首先,事务的概念是数据库层面的,spring只是基于此进行了扩展。

      

      在一个方法上加了@Transactional注解后,会将这个代理对象做为bean,当在使用这个代理对象作为方法时,如果这个方法存在了@Transactional注解,那么代理对象会先把

      事务的自动提交设置为false,然后再去执行原本的业务逻辑方法,如果执行业务逻辑方法没有出现异常,那么代理逻辑中就会将事务进行提交,如果出现了异常就会回滚。

      spring的事务隔离级别就是数据库的隔离级别:外加一个默认等级。

      read uncommitted 未提交读

      read commit 提交读,不可重复读。

      repeatable read 可重复读。

      seriallizable 可串行化 

      spring 事务的传播机制

    保证同一个事务中
    PORPAGATION_REQUIRED:支持当前事务,如果不存在 就新建一个(默认)
    PROPAGATION_SUPPORTS:支持当前事务,如果不存在,就不使用事务
    PROPAGATION_MANDATORY:支持当前事务,如果不存在,抛出异常
    * 保证没有在同一个事务中
    PROPAGATION_REQUIRES_NEW:如果有事务存在,挂起当前事务,创建一个新的事务
    PROPAGATION_NOT_SUPPORTED:以非事务方式运行,如果有事务存在,挂起当前事务
    PROPAGATION_NEVER:以非事务方式运行,如果有事务存在,抛出异常
    PROPAGATION_NESTED:如果当前事务存在,则嵌套事务执行

  • 相关阅读:
    webpack 模块化 原理
    nodejs 程序 调试
    inno打包教程
    原生xhr、fetch 请求的拦截。mock 技术原理
    package.json 字段说明
    npm 依赖包 的管理【即 node_modules目录的设计原理】
    现在浏览器、webview 中 css的兼容性问题。
    安卓APP(H5本地打包apk应用)
    npm 脚本
    linux系统 离线安装node和nginx(即npm包)
  • 原文地址:https://www.cnblogs.com/hrlizhi/p/14752560.html
Copyright © 2020-2023  润新知