在Spring中编写事务的介绍

作者:李灿辉 时间:2021-12-15 10:33:18 

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

比如你去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。

来源:https://blog.csdn.net/li_canhui/article/details/85635707

标签:spring,编写,事务
0
投稿

猜你喜欢

  • Java Web项目部署在Tomcat运行出错与解决方法示例

    2023-07-18 02:50:47
  • Java 字符串转float运算 float转字符串的方法

    2022-04-09 10:09:06
  • Maven的安装配置详解

    2023-11-24 08:52:05
  • Android Handler消息机制分析

    2023-10-01 13:22:26
  • java教程之java注解annotation使用方法

    2023-11-13 20:18:57
  • Java 多线程等待优雅的实现方式之Phaser同步屏障

    2023-11-29 09:47:43
  • 详解spring-boot集成elasticsearch及其简单应用

    2021-08-26 01:09:58
  • Java图论进阶之最小生成树算法详解

    2022-05-28 12:17:54
  • java多线程复制文件的实例代码

    2022-03-04 04:29:54
  • 详解@ConfigurationProperties实现原理与实战

    2023-11-24 05:19:26
  • java并发编程之ThreadLocal详解

    2023-03-15 11:44:33
  • HashMap原理及put方法与get方法的调用过程

    2023-10-06 03:53:02
  • Java实现查找当前字符串最大回文串代码分享

    2023-07-30 04:05:02
  • Springboot项目引入druid安装部署使用教程

    2023-07-28 01:39:25
  • Java内存模型JMM详解

    2023-11-28 13:08:50
  • Java 数据结构与算法系列精讲之单向链表

    2023-07-10 08:22:12
  • SpringBoot整合activemq的案例代码

    2023-11-06 18:41:37
  • Java基础之练习打印三角形

    2023-08-25 05:39:33
  • Java如何给Word文档添加多行文字水印

    2023-11-10 07:40:58
  • 浅谈Java之Map 按值排序 (Map sort by value)

    2021-06-20 01:23:10
  • asp之家 软件编程 m.aspxhome.com