spring事务之多个业务之间怎么共享用同一个事务

Posted zhanp

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了spring事务之多个业务之间怎么共享用同一个事务相关的知识,希望对你有一定的参考价值。

应用场景:一个月前在学校做一个羽毛球馆的项目时,那个时候用的是springboot,然后项目分成几个模块,教练模块,学生模块,管理员模块,场地模块等等,然后Service层是按模块化进行的设计。

但是这种模块的业务层设计,导致了后面需要实现一个复杂的任务时,需要组合多个Service里的多个DAO来完成。而那个时候不会这种多Service连续运行的事务处理。在测试的时候耗费了很多时间回数据库里去做脏数据的清除(因为经常某个模块出现了bug)

 

解决方法:采取了注解的事务配置,如下图:

技术分享图片

 

解析:采取了把多个Service组合在一个新的业务Service里,然后通过注册新的事务,并配置了事务传播, 所以下面的几个被调用的Service可以共享同一个事务。

 

场景:利用了int i = 1/0;//断电          这种运行时异常来进行事务的测试

实验结果如下:

技术分享图片

 

总结:从今天开始,多实验,多敲代码,万一以后真的找不到工作该怎么办才好??

 

以上是关于spring事务之多个业务之间怎么共享用同一个事务的主要内容,如果未能解决你的问题,请参考以下文章

Spring数据访问和数据访问层与业务或服务层之间的交互

分布式事务操作之Spring+JTA

Spring之Transactional注解

微服务框架Spring Cloud之使用事件和消息队列实现分布式事务

面试官:知道Spring事务传播行为吗?多个方法之间调用事务如何传播?还好我看过

SpringCloud - Spring Cloud Alibaba 之 Seata分布式事务服务详解;部署(十八)