这篇文章主要介绍“Spring事务的传播行为是什么”,在日常操作中,相信很多人在Spring事务的传播行为是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Spring事务的传播行为是什么”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
创新互联专业为企业提供萧山网站建设、萧山做网站、萧山网站设计、萧山网站制作等企业网站建设、网页设计与制作、萧山企业网站模板建站服务,十多年萧山做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。这四个英文单词拼写我一直记不住,求记忆方法
原子性(Atomicity):事务是一系列原子操作,要么全部成功,要么全部失败。
一致性(Consistency):一旦完成(不管是成功还是失败),确保它所在的一系列业务状态保持一致,状态都是成功,或者都是失败,不能一部分成功一部分失败。
隔离性(Isolation):不同事务同时进行某项业务,处理相同的数据时候,需要保证事务之间相互独立,互相之间数据不影响。
持久性(Durability):一旦事务完成,无论发生什么系统性错误,事务执行后的数据都被持久化了,不会因为重启或其他操作对数据进行更改。
我们先给出定义再分别进行简单的代码分析
给出百度图片,请大家参考,首先生命力如果想在工程中运用事务spring 的xml必须开启事务,以下这些特性一般都是在xml属性中进行配置。
类似这种的配置一定要有,否则万事具备只欠东风,这个是DB事务有JTA和JPA以及Herbernate等,这里就不展开说明,可自行百度。
无事务运行
事务的传播特行为为required
结果是因为主键冲突将事务进行了回滚,所以两条数据都没有插入进去。
事务的传播行为性为supports
因为调用方未用事务那么就在非事务中运行,所以插入了first的第一条数据。
事务的传播行为为manatory
因为调用的外层没有事务,所以两条数据没有插入。大家想想下面这种写法会发生什么现象
事务的传播行为mandatory
事务的传播行为required_new
结果和require一样,两条数据都没有入库,唯一健冲突导致第一条数据回滚,大家可以思考下我下面这两种情况。
情景1新起的事务抛出异常会不会让外围事务回滚?
情景2外围事务失败会不会导致新起事务已提交的回滚?
事务的传播行为not_suppoted
这种情景下,如果你根据我的思路一步走的应该可以想到id 为17的入库,第二条主键冲突虽然然而notSupportSonTransationsl()这个方法没有事务所以不影响第一条入库情况,但是外围事务id为16的要进行回滚了,所以库中只有一条数据id=17的。
事务的传播行为NEVER
事务的传播行为nested
到此,关于“Spring事务的传播行为是什么”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注创新互联-成都网站建设公司网站,小编会继续努力为大家带来更多实用的文章!
售后响应及时
7×24小时客服热线数据备份
更安全、更高效、更稳定价格公道精准
项目经理精准报价不弄虚作假合作无风险
重合同讲信誉,无效全额退款