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全注解事务管理中怎么手动回滚事物的主要内容,如果未能解决你的问题,请参考以下文章