注解版Spring事物的传播特性详解

1:事物的特性:原子性,一致性,隔离性,持续性。

2:事物的隔离级别:读未提交,读已提交,读重复,序列化。

Spring事物的传播特性一共有七种:

传播特性含义用法
PROPAGATION_REQUIRED表示当前方法必须在一个包含事物的上下文环境中运行,也就是说,进入该方法时,如果已经开启了事物,则在当前事物下运行,否则,开启一个新的事物。
@Transactional(propagation = Propagation.REQUIRED)
PROPAGATION_SUPPORTS表示该方法可以在事物环境下运行,但不是必须的,也就是说,进入该方法时,如果已经开启了事物,则在事物环境下运行,否则不在事物环境下运行。
@Transactional(propagation = Propagation.SUPPORTS)
PROPAGATION_MADATORY表示该方法必须在事物环境下运行,如果调用该方法时不包含事物,则抛出IllegalTransactionStateException异常。
@Transactional(propagation = Propagation.MANDATORY)
PROPAGATION_NESTED如果不存在事物,则开启一个新的事物,如果已经存在事物,则在嵌套事物中运行。嵌套事物和新开启一个事物的区别时,外部调用者出现异常能使嵌套事物回滚,但是不能使新开启的事物回滚。@Transactional(propagation = Propagation.NESTED)
PROPAGATION_NEVER表示该方法不能在事物环境下运行,如果调用该方法事已经开始了事物,则抛出异常。
@Transactional(propagation = Propagation.NEVER)
PROPAGATION_REQUIRES_NEW表示进入该方法时,开启一个新的事物。
@Transactional(propagation = Propagation.REQUIRES_NEW)
PROPAGATION_NOT_SUPPORTED表示该方法不应该在事物中运行,如果进入该方法时,已经开启了事物,则将该事物挂起,直到方法执行完毕再将挂起的事物重新开启。
@Transactional(propagation = Propagation.NOT_SUPPORTED)
   

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值