简介Spring事务在源码中已经定义的很清楚了,请直接阅读源码结合自己的业务场景使用,这里就扯太多@Transactional@Target({ElementType.TYPE,ElementType.METHOD})@Retention(RetentionPolicy.RUNTIME)@Inherited@Documentedpublic@interfaceTransactional{//其余的已经省略Propagationpropagation()defaultPropagation.REQUIRED;}PropagationpublicenumPropagation{//默认级别如果有现有事务,加入新事务REQUIRED(TransactionDefinition.PROPAGATION_REQUIRED),//如果有当前事务,如果没有事务,以非事务方式运行SUPPORTS(TransactionDefinition.PROPAGATION_SUPPORTS),//如果有当前事务,如果没有事务,会抛出异常MANDATORY(TransactionDefinition.PROPAGATION_MANDATORY),//如果当前有事务,则暂停并创建新事务REQUIRES_NEW(TransactionDefinition.PROPAGATION_REQUIRES_NEW),//如果当前有事务transaction,suspendandrunNOT_SUPPORTED以非事务方式(TransactionDefinition.PROPAGATION_NOT_SUPPORTED),//如果已经存在事务,会报错;ifthereisnotransaction,runNEVER(TransactionDefinition.PROPAGATION_NEVER),//如果当前有事务,则创建新事务并执行NESTED(TransactionDefinition.PROPAGATION_NESTED);}
