当前位置:   article > 正文

Spring 事务再梳理之 Propagation 基本使用_propagation = propagation.mandatory

propagation = propagation.mandatory

Spring 事务再梳理之 Propagation 基本使用

历史笔记

拼班服务 GroupServiceImpl.java 中有一个供外部调用的方法;

    /**
     * 强制调用该方法的地方必须声明事务
     */
    @Override
    @Transactional(propagation = Propagation.MANDATORY, rollbackFor = Throwable.class)
    public void dealTradeEvent(TradeEvent tradeEvent) {
        try {
            dealTradeEventDetail(tradeEvent);
        } catch (Exception e) {
            log.error("处理订单事件失败", e);
        }
    }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

现在对 @Transactional 中 propagation 属性做一些学习笔记

public @interface Transactional {
    // 同 transactionManager
	@AliasFor("transactionManager")
	String value() default "";

	// 指定事务的限定值
	@AliasFor("value")
	String transactionManager() default "";

	// 传播特性
	Propagation propagation() default Propagation.REQUIRED;

	// 隔离级别
	Isolation isolation() default Isolation.DEFAULT;

	// 超时时间
	int timeout() default TransactionDefinition.TIMEOUT_DEFAULT;

	// 只读
	boolean readOnly() default false;

	// 指示哪些异常必须引起事务回滚
	Class<? extends Throwable>[] rollbackFor() default {};

	// 指示哪些异常类型必须不导致事务回滚。
	Class<? extends Throwable>[] noRollbackFor() default {};
}

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28

这里使用的 propagation = Propagation.MANDATORY 只是一种情况,其他还有

  1. 默认使用 Propagation.REQUIRED

支持当前事务,如果不存在则创建一个新事务;(支持当前事务即调用当前方法的地方声明的事务)

  1. Propagation.SUPPORTS

支持当前事务,如果不存在则非事务执行

  1. Propagation.MANDATORY

支持当前事务,如果不存在则抛出异常

  1. Propagation.REQUIRES_NEW

创建一个新事务,如果当前已存在事务则挂起该事务,使用新建的事务

  1. Propagation.NOT_SUPPORTED

非事务执行,如果当前已存在事务则暂停该事务

  1. Propagation.NEVER

非事务执行,如果当前已存在事务则抛出异常

  1. Propagation.NESTED

如果当前存在事务,则创建一个事务作为当前事务的嵌套事务来运行;
如果当前没有事务,则该取值等价于TransactionDefinition.PROPAGATION_REQUIRED。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/不正经/article/detail/405382
推荐阅读
相关标签
  

闽ICP备14008679号