说明
1、本文内容全部来自尚硅谷
2、本文使用代码来自spring总结(二十四)--注释的方式配置事务
本文背景
问:当事务方法A被另一个事务方法B调用时,必须指定事务B如何传给A。即A是继续使用B的事务控制呢,还是自己新开一个事务。
答:事务如何传播,spring定义了7种传播方式。如下图。我们这里以REQUIRED,与REQUIRED_NEW两个属性为例子
使用默认传播属性实例
新建一个java文件
purchase也有一个事务A
这里没有配置事务属性,默认继承B的事务。
测试类
这种方式配置结果是买两本书要么两次购买都成功,要么两次购买都失败
使用REQUIRED属性实例
修改这个地方就可以了,效果和上面的默认值使用的效果一样
使用REQUIRES_NEW属性使用实例
修改A属性的值
及两次买书,每次买书是否成功与否,互补干扰。