Spring事务传播属性有那么难吗?看这一篇就够了
副标题[/!--empirenews.page--]
笔者文笔功力尚浅,如有不妥,请慷慨指出,必定感激不尽 学习东西要知行合一,如果只是知道理论而没实践过,那么掌握的也不会特别扎实,估计过几天就会忘记,接下来我们一起实践来学习Spring事务的传播属性。 传播属性 传播属性定义的是当一个事务方法碰到另一个事务方法时的处理行为,一共有七种行为,定义如下 其实只看概念的话已经很直截了当了说明了每个传播性的作用,此时我们再用具体的例子演示一下每个传播性属性下的行为。 此次演示我们使用的是H2数据库,这个数据库是作用在内存里面的,所以对于我们演示事务效果来说正好,无需我们在进行其他的配置了,我们新建一个表。将下面语句放在schema.sql文件里面即可,SpringBoot程序在启动的时候就会自动为我们在内存里面建立这样的一个表。
演示之前我们会定义两个类FooService和BarService。我们使用BarService 里面的方法进行调用FooService 中的方法。 环境准备 在进行事务演示之前,其实可以分为以下几种情况,根据排列组合,我们可以得出以下八种情况
异常类 其中的RollbackException是我们自己定义的一个异常类
调用者 在BarService中定义两个方法,一个是带着事务的,一个是不带事务的
接下来我们就根据俄上面定义的八种情况进行事务传播属性的学习。 PROPAGATION_REQUIRED 在此传播属性下,被调用方是否新建事务取决去调用者是否带着事务。 想要了解这个传播属性的特性,其实我们演示上面八种情况的两个例子就够了
我们先来看一下被调用者的类的方法例子。
(编辑:通化站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 使用html5+css3来实现slider切换效果告别javascript+css
- 详细的PostgreSQL工具总结:备份恢复、监控、复制、高可用等
- Oracle和MySQL的JDBC到底有多慢?
- oracle建表备份脚本,如果update的数据不对,可以从WEB_RI_
- Redis系列:详解Memcached、Redis等缓存的特征、原理、应用
- mysql – 将TableA中的行移动到Table-Archive中
- 批量删除指定表前缀表
- 帮助设置Ruby on Rails和MySQL – 提供奖励
- HTML5中input输入框默认提示文字向左向右移动的示例代码
- c#-使用连接器/ NET的关联数组/哈希/哈希表