spring全注解事务管理中怎么手动回滚事物

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了spring全注解事务管理中怎么手动回滚事物相关的知识,希望对你有一定的参考价值。

参考技术A spring事物配置:
配置事务管理器
启用基于注解的事务管理
通过AOP配置提供事务增强,让service包下所有Bean的所有方法拥有事务,proxy-target-class="true"使用CGLIB代理和@AspectJ自动代理支持
Spring的事物是捕获异常来进行事物回滚,有时候我们需要根据业务逻辑来判断是否需要事物回滚。这时候我们就用到手动事物回滚了

Spring事务管理----事物回滚

Spring的事务管理默认只对未检查异常(java.lang.RuntimeException及其子类)进行回滚,如果一个方法抛出Checked异常,Spring事务管理默认不进行回滚。

改变默认方式 
在@Transaction注解中定义noRollbackFor和RollbackFor指定某种异常是否回滚。 
@Transaction(noRollbackFor=RuntimeException.class) 
@Transaction(RollbackFor=Exception.class) 
这样就改变了默认的事务处理方式。

启示 
这就要求我们在自定义异常的时候,让自定义的异常继承自RuntimeException,这样抛出的时候才会被Spring默认的事务处理准确处理。






以上是关于spring全注解事务管理中怎么手动回滚事物的主要内容,如果未能解决你的问题,请参考以下文章

Spring Boot 事物回滚

Spring事务管理----事物回滚

Spring 使用注解方式进行事务管理

Spring Boot 事物回滚

手动实现自己的spring事务注解

浅谈Spring中的事务回滚