事务的传播行为及其它属性

接着上一篇博客,当你配置好事务之后,如果你的剩余金额不足以买一本书,那么你的金额不会减少,同时那本书在仓库里也不会减少一本。只有你的金额足以买书的时候,你的金额才会减少,同时仓库里的书也减少(你买去了)。

现在有个情况,如果你要同时买好几本书,但是你的金额只允许你买其中的一部分,那么spring事务会怎么做呢?这就是在事务中处理事务。带着这个问题,看事务的传播行为




事务的属性:



看例子吧还是,接着上一篇继续写代码




那5个属性看下面,字有点小呀

//使用propagation指定事务的传播行为,即当前的事务方法被另外一个事务方法调用时
//1  如何使用事务,默认取值为REQUIRED,即使用调用方法的事务
//REQUIRES_NEW:使用自己的事务,调用的事务方法的事务被挂起。
//2  使用isolation指定事务的隔离级别,最常用的取值为READ_COMMITTED
//3 默认情况下,Spring的声明式事务对所有的运行时异常进行回滚,也可以通过对应的属性
//进行设置,一共四个属性,通常情况下默认值就好
//4 使用readOnly指定事务是否为只读.表示这个事务只读取数据但不更新数据,
//这样可以帮助数据库引擎优化事务,若真的事务是一个只读取数据库值得方法,应设置readOnly=true
//5 使用timeout指定强制回滚之前事务可以占用的时间.


你可以测试下看看结果,REQUIRED是只够买一部分也不行,REQUIRES_NEW是可以买一部分,剩下的买不了,这是一个属性,其余的看注释,不懂的话再执行下,别忘了添加tx命名空间

xmlns:tx="http://www.springframework.org/schema/tx"

xsi:schemaLocation=“”http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.3.xsd“”


猜你喜欢

转载自blog.csdn.net/youjiangtengwan1/article/details/54315269
今日推荐