Spring事务的传播属性(Propagation):java
REQUIRED:支持事务,若是当前线程已存在事务,按当前事务执行,没有当前事务会建立一个事务继续执行线程分布式
SUPPORTS:支持事务,若是当前线程有事务,会按照事务执行。没有事务,则按照无事务执行线程
MANDATORY:必须支持事务,若是不存在事务抛异常接口
REQUIRES_NEW:建立一个新事务,若是当前线程存在事务会被禁止事务
NOT_SUPPORTED:以无事务状态运行,无论当前线程是否存在事务it
NEVER:以无事务运行,当前线程存在事务抛异常io
NESTED:在嵌套事务中执行,当前线程已存在事务。配置
分布式下事务处理:jdbc
java下JTA规范经过UserTransaction接口实现分布式事务的支持异常
SpringBoot下有Atomikos和Bitronix下的XA resouces实现分布式事务
分布式下消息补偿机制,最大通知原则实现,分布式事务
TCC事务补偿机制
注意:
Spring 的事务隔离级别,实际上配置在jdbc的jar包中Connection类下。