Spring 事务原理

事务的基本原理

Spring 事务 本质上是对JDBC事务的封装。
对于纯JDBC操作数据库,想要用到事务,可以按照以下步骤进行:

Connection con = DriverManager.getConnection()  //1.获取连接 
try {
    con.setAutoCommit(false);   //2.开启事务
    
    //3. do your business
    
    con.commit() //4.提交事务
} catch (Exception e){
    con.rollback(); //5.回滚
}finally{
    conn.close(); //6.关闭连接 
}

这种方式的事务管理使事务范围可以在代码中很清晰地表达出来,但它有以下缺点:

  • 容易出现重复代码和错误
  • 任何错误可能产生较大的影响
  • 错误难以调试和复现
  • 降低了代码库的可读性

使用Spring的事务管理功能后,我们可以不再写步骤 2、4 和5的代码,而是由Spirng 自动完成。

标准配置

要 开 启 Spring 的 事 务 处 理 , 在 Spring 的 XML 配 置 文 件 中 简 单 创 建 一 个 DataSourceTransactionManager 对象:


    
        
    

    
    

然后,就可以在代码中使用 @Transactional注解了,上面的代码就简化为:

@Transactional
 public void businessLogic() {
       //do your business
}

通过使用@Transactional,还可以设置事务传播、隔离级别、如何回滚等。

你可能感兴趣的:(Spring 事务原理)