技术帮
 

Spring事务的传播属性

本网站内容基本都是原创作品,未得到作者同意也欢迎转载
转载请注明出处:技术帮
说你呢,赶紧长按二维码,然后点击识别图中二维码

任何技术难题可进QQ群提问:【小崔说编程
对于提问的原则是:没有你不能问的,只有我不会答的

1472955908895017376.png说两句


在配置Spring的事务的时候,我们需要配置一下Spring的事务的传播属性。

如下面使用声明式事务的时候涉及到传播属性配置的部分xml:

       <tx:advice id="txAdvice" transaction-manager="txManager">

<tx:attributes>

<tx:method name="do_*"  propagation="REQUIRED"/>

<tx:method name="*" read-only="true" />

</tx:attributes>

</tx:advice>

请注意,上面xml蓝字部分就是设置传播属性的地方。

这个传播属性的作用是什么呢?本文将做一个简单的介绍。


1473058358717068189.png 可选的传播属性设置


REQUIRED--支持当前事务,如果当前没有事务,就新建一个事务。这是最常见的选择。


SUPPORTS--支持当前事务,如果当前没有事务,就以非事务方式执行。


MANDATORY--支持当前事务,如果当前没有事务,就抛出异常。


REQUIRES_NEW--新建事务,如果当前存在事务,把当前事务挂起。


NOT_SUPPORTED--以非事务方式执行操作,如果当前存在事务,就把当前事务挂起。


NEVER--以非事务方式执行,如果当前存在事务,则抛出异常。