Spring 事务原理

作者: FX_SKY | 来源:发表于2017-03-03 12:01 被阅读44次

事务的基本原理

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 对象:

<!-- 配置事务管理器 -->
    <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        <property name="dataSource" ref="masterDataSource" />
    </bean>

    <!-- 启用事物注解 -->
    <tx:annotation-driven transaction-manager="transactionManager" />

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

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

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

相关文章

  • Spring事务完全解析

    事务是什么?了解事务的原理吗?说下Spring的事务原理,能自己实现Spring事务原理吗?先自我检测下这些知识掌...

  • Spring事物原理完全解析

    事务是什么?了解事务的原理吗?说下Spring的事务原理,能自己实现Spring事务原理吗?先自我检测下这些知识掌...

  • 程序员之Spring

    1. Spring事务 spring的事务实现原理Spring事务将connection放入到当前线程的threa...

  • 分布式事务(2)Spring事务

    2.1 Spring事务原理 Spring支持编程式事务和声明式事务。编程式事务就是用个事务类Transactio...

  • spring 事务

    本章探索spring事务的原理需要知道spring事务的原理,就必须先理解spring AOP在我之前的文章有讲解...

  • spring事务的实现原理

    spring实现事务的原理 Spring事务 的本质其实就是数据库对事务的支持,没有数据库的事务支持,spring...

  • 转:Spring IOC和AOP 原理彻底搞懂

    本博中关于spring的文章:Spring IOC和AOP原理,Spring事务原理探究,Spring配置文件属性...

  • 2018-06-09

    spring源码分析(八) 目录五、源码分析--6、Spring 事务原理详解----6.1、什么是事务(Tran...

  • Spring事务传播机制

    1.Spring事务执行的原理; Spring事务使用AOP的机制实现,会在@Transcactional注解修饰...

  • Spring事务(一)

    Spring事务的实现原理: Spring事务底层是基于数据库事务和AOP机制的 ⾸先对于使⽤了@Transact...

网友评论

    本文标题:Spring 事务原理

    本文链接:https://www.haomeiwen.com/subject/bcwlgttx.html