各框架原理

Spring 事务原理

2017-03-03  本文已影响44人  FX_SKY

事务的基本原理

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,还可以设置事务传播、隔离级别、如何回滚等。

上一篇 下一篇

猜你喜欢

热点阅读