在Spring中编写事务的介绍

 更新时间:2019年01月07日 08:32:28   作者:李灿辉  
今天小编就为大家分享一篇关于在Spring中编写事务的介绍,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧

理解事务之前,先讲一个你日常生活中最常干的事:取钱。

比如你去ATM机取1000块钱,大体有两个步骤:首先输入密码金额,银行卡扣掉1000元钱;然后ATM出1000元钱。这两个步骤必须是要么都执行要么都不执行。如果银行卡扣除了1000块但是ATM出钱失败的话,你将会损失1000元;如果银行卡扣钱失败但是ATM却出了1000块,那么银行将损失1000元。所以,如果一个步骤成功另一个步骤失败对双方都不是好事,如果不管哪一个步骤失败了以后,整个取钱过程都能回滚,也就是完全取消所有操作的话,这对双方都是极好的。

事务就是用来解决类似问题的。事务是一系列的动作,它们综合在一起才是一个完整的工作单元,这些动作必须全部完成,如果有一个失败的话,那么事务就会回滚到最开始的状态,仿佛什么都没发生过一样。

在企业级应用程序开发中,事务管理必不可少的技术,用来确保数据的完整性和一致性。

在Spring中编写事务的方式,是使用Spring的TransactionTemplate。就想Spring中的其他模板类一样,TransactionTemplate利用一种回调机制,让用户编写需要在事务中编写的代码。

transactionTemplate.execute(new TransactionCallBack(){
    public Object doInTransaction(TransactionStatus ts){
    }
});

那么,这里的transactionTemplate是从哪里来的呢?它和TransactionManager是什么关系呢?

首先,这个transactionTemplate需要注入到业务bean中。

其次,TransactionTemplate中有一个成员变量,是TransactionManager类型的,也需要自动注入一个TransactionManager。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对脚本之家的支持。如果你想了解更多相关内容请查看下面相关链接

相关文章

  • Java CPU性能分析工具代码实例

    Java CPU性能分析工具代码实例

    这篇文章主要介绍了Java CPU性能分析工具代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-01-01
  • java serialVersionUID解决序列化类版本不一致问题面试精讲

    java serialVersionUID解决序列化类版本不一致问题面试精讲

    这篇文章主要为大家介绍了serialVersionUID解决序列化类版本不一致问题的面试精讲,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-10-10
  • Java Swing实现坦克大战游戏

    Java Swing实现坦克大战游戏

    这篇文章主要介绍了Java Swing实现坦克大战游戏,文中有非常详细的代码示例,对正在学习java的小伙伴们有很大的帮助哟,需要的朋友可以参考下
    2021-05-05
  • java算法实现预测双色球中奖号码

    java算法实现预测双色球中奖号码

    这篇文章主要介绍了java算法实现预测双色球中奖号码的相关资料,需要的朋友可以参考下
    2015-12-12
  • Spring Security登录接口兼容JSON格式登录实现示例

    Spring Security登录接口兼容JSON格式登录实现示例

    前后端分离中,前端和后端的数据交互通常是JSON格式,本文主要介绍了Spring Security登录接口兼容JSON格式登录实现示例,具有一定的参考价值,感兴趣的可以了解一下
    2024-01-01
  • SPRING FRAMEWORK BEAN作用域和生命周期原理解析

    SPRING FRAMEWORK BEAN作用域和生命周期原理解析

    这篇文章主要介绍了SPRING FRAMEWORK BEAN作用域和生命周期原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-01-01
  • Java数据结构之散列表(动力节点Java学院整理)

    Java数据结构之散列表(动力节点Java学院整理)

    散列表(Hash table,也叫哈希表),是根据关键字(key value)而直接进行访问的数据结构。这篇文章给大家介绍了java数据结构之散列表,包括基本概念和散列函数相关知识,需要的的朋友参考下吧
    2017-04-04
  • 详解Mybatis的分页插件

    详解Mybatis的分页插件

    这篇文章主要介绍了详解Mybatis的分页插件,在 Mybatis中,如何对数据进行分页是一个非常常见的问题,现在,我们可以通过使用 Mybatis 的分页插件来实现对数据的分页,需要的朋友可以参考下
    2023-05-05
  • Spring之@Aspect中通知的5种方式详解

    Spring之@Aspect中通知的5种方式详解

    本文主要介绍了Spring之@Aspect中通知的5种方式详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-05-05
  • 解决Spring boot整合mybatis,xml资源文件放置及路径配置问题

    解决Spring boot整合mybatis,xml资源文件放置及路径配置问题

    这篇文章主要介绍了解决Spring boot整合mybatis,xml资源文件放置及路径配置问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-12-12

最新评论