栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Spring 学习总结笔记【十二、Spring事务管理】

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Spring 学习总结笔记【十二、Spring事务管理】

往期文章:

Spring 学习总结笔记【一、快速入门】
Spring 学习总结笔记【二、IoC-控制反转】
Spring 学习总结笔记【三、注解开发】
Spring 学习总结笔记【四、整合Junit】
Spring 学习总结笔记【五、配置数据源】
Spring 学习总结笔记【六、整合Mybatis】
Spring 学习总结笔记【七、AOP面向切面编程】
Spring 学习总结笔记【八、集成Web环境】
Spring 学习总结笔记【九、SpringMVC快速入门】
Spring 学习总结笔记【十、SpringMVC数据响应与请求】
Spring 学习总结笔记【十一、SpringMVC拦截器】

目录
  • 一、Spring事务简介
  • 二、案例引入
  • 三、Spring事务管理开启步骤
  • 四、事务属性

一、Spring事务简介
  • 事务作用:在数据层保障一系列的数据库操作同成功同失败
  • Spring事务作用:在数据层或业务层保障一系列的数据库操作同成功同失败
二、案例引入

模拟银行账户间转账业务

  • 需求:实现任意两个账户间转账操作
  • 需求微缩:A账户减钱,B账户加钱

数据库如下:


dao层接口如下:


service层的实现如下


我们来测试一波

数据库的内容也更改了,确实达到了我们的预期,目前看来是没有任何问题的


但是我们现在在 transfer 转账操作之间人为添加一句bug


再运行一次,这次就出问题了

程序只执行了转出操作,就遇到了异常,转入操作为未执行。这就导致了数据库中只记录到了转出的信息。

结果分析:
① 程序正常执行时,账户金额 A减B加,没有问题
② 程序出现异常后,转移失败,但是异常之前操作成功,异常之后操作失败,整体业务失败


三、Spring事务管理开启步骤

① 在业务层接口上添加 Spring 事务管理 @Transactional


注意:Spring注解式事务通常添加在业务层接口中而不会添加到业务层实现类中,降低耦合;注解式事务可以添加到业务方法上表示当前方法开启事务,也可以添加到接口上表示当前接口所有方法开启事务。


② 设置事务管理器

我此处共设置了 3 个配置类,我将事务管理器配置在了 JdbcConfig 中

注意:事务管理器要根据实现技术进行选择;Mybatis框架使用的是 JDBC 事务


③ 开启注解式事务驱动 @EnableTransactionManagement


此时我们再对刚才有异常的程序再执行一次。

  • 我们先将数据库归为原样

  • 再进行测试

程序异常,但数据库的信息未改动


四、事务属性

下期文章:

Spring 学习总结笔记【十三、SpringMVC异常处理器】

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1020169.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号