spring的事物管理

事物本身是数据库中的概念,按理说应该在数据访问层(dao)

绝大多数的情况下,我们是把事物提升到业务逻辑层

01,使用spring的事务代理工厂来管理事务

02,使用spring的注解来管理事务  常用

03,使用AspectJ的AOP配置来管理里事务

需要掌握的两个属性名;

isolation;事务隔离级别

    01,default;采用数据库默认的事务隔离级别

      001,mysql------》repeatable-read

      002,oracle------》read_committed

    02,repeatable-read;可重复读取,解决了脏读,不可重复读,没解决幻读

    03,read_committed;读已提交,解决了脏读,没解决不可重复读,黄渡

    04,read_uncommitted;读未提交,什么都没解决

    05,serializable;窜行化,级别最高,效率低,不存在开发问题

propagation;事务传播行为,一共7种方式

    01,required;是spring默认的事务传播行为

      指定的方法必须在事物中执行,如果没有事物。则会自动创建一个事务

    02,supports;有事务就在事务环境下运行,没有事务就直接运行

    03,mandatatory;指定的方法必须在事务中执行,如果没有事务,则抛出异常

    04,requires_new;总是新建一个事务,如果当前方法存在事务,这把当前时间挂起,

      直到新创建的事务执行完毕后执行

    05,not_supported;指定方法不能再事务中执行,如果当前方法存在事务,则把当前的

      事务挂起

    06,never;指定的方法不能再事务中执行,如果当前方法存在事务,就会抛出异常

    07,nested;指定的方法必须在事务中执行

          如果执行的方法没有事务,则会创建一个事务!

          如果执行的方法有事务,则会嵌套执行

    

  timeout_default;定义了事务默认的超时时间!

原文地址:https://www.cnblogs.com/liuyunfei/p/7066596.html