spring的事物

来源:互联网 发布:冷吃兔 淘宝 编辑:程序博客网 时间:2024/06/05 15:15
 isolation 表示事务的隔离级别
                DEFAULT 是获取数据库的隔离界别
                READ_UNCOMMITTED 读取到其他spring方法未提交的数据 引发脏读问题
                READ_COMMITTED 只能读取到其他事务已经提交的数据  默认
                REPEATABLE_READ 可重复读  解决脏读不可重复读  引发幻读
           SERIALIZABLE    串行化 解决了所有问题
           隔离级别越高 需要消耗更多的资源去处理 效率低下
    propagation 传播特性 方法和方法之间的调用  事务是否能够传播
- REQUIRED (spring 默认的传播特性)
  必须存在一个事务 如果没有事务 创建一个事务  如果父方法存在事务使用父方法的事务
- REQUIRES_NEW   
必须存在一个事务 不管有没有事务都要自己创建一个事务  
- SUPPORTS
不会创建事务 如果有事务在事务中运行 没有事务 不使用事务
- MANDATORY(必须存在事务)
不会创建事务 有事务 使用当前事务  没有事务跑出 错误状态异常
- NEVER (不能存在事务)
不会创建事务 没有事务正常运行 有事务抛出异常 
- NOT_SUPPORTED
不支持事务 如果存在事务就挂起 没有事务正常运行
- NESTED (少用)
嵌套异常 不同的数据源之间的事务处理   相同的数据 就是 REQUIRED

spring tx事务处理中 只有运行时异常才会自动回滚数据
 rollback-for 指定需要回滚的非运行时异常
 no-rollback-for="" 指定不需要回滚的运行时异常
 
timeout="-1" 会一直等待数据操作完成
 默认的单位是s  
 
 

read-only="true" 该方法不使用事务  





1 bean的自动装配(ioc)
      Controller,Service Repository
      Autowire Resource
 2 数据源概念(DataSource)
    JdbcTemplate
    MybatisTemplate
    HibernateTempate  操作数据库的sql
 3 aop 通知
     事务配置