spring学习16(事务管理)

是指作为单个逻辑工作单元执行的一系列操作 要么完全地执行,要么完全地不执行;

注解配置事务



        



  • 根据数据库的框架不同注册的事务管理器都不一样
  • 使用注解方式要启用注解
使用@Transactional注解标注事务管理方法
    @Transactional(timeout=2)
    @Override
    public void purchase(String uid, String bookid) {
        // 获取书单价
        int price = bookDao.findBookPrice(bookid);
        // 更新书的库存
        bookDao.updateBookStock(bookid);
        // 更新用户余额
        bookDao.updateUser("1", price);
    }
事务的传播行为

@Transactional的propagation属性指定事务传播行为(即当前的事务方法被调其他用的事务方法)
1)REQUIRED是默认行为 即使用当前事务
2) REQUIRES_NEW 即使用自己的事务

@Transactional(propagation=Propagation.REQUIRED)
隔离级别

使用属性isolation 指定事务的隔离级别,最常用的是READ_COMMITTED

指定回滚或者不回滚异常
  • 默认情况下spring神明的事务对所有的运行时的异常进行回滚,也可以通过对应的属性进行设置
  • noRollbackFor指定不回滚的异常
  • RollbackFor只回滚的异常
timeout指定强制回滚之前事务可占用的时间(防止一个请求占用过多的时间)

配置文件配置事务

  • 1正常配置需要的bean
  • 2配置事务管理器
  • 3配置事务属性 隔离级别 只读 回滚..
  • 4.配置事务切入点 以及把事务切入点 和事务属性关联


    

    

    
    
    
    
        
        
        
        
        
        
    

    
    
        
    

    
    
        
    

    
        
    

    
        
    

    

    
    
        
    

    
    
        
            
            
            
        
    


    
    
        
        
        
        
    
    

你可能感兴趣的:(spring学习16(事务管理))