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

时间:2021-11-07 19:26:07

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

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

 

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

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

 

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

 

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

实验结果如下:

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

 

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