怎样确保java代码在抛出异常时都回滚,而不只是运行时异常

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

      /** TransactionAspectSupport手动回滚事务:*/

       @Transactional(rollbackFor = { Exception.class })  

       public boolean test() {  

            try {  

               doDbSomeThing();    

            } catch (Exception e) {  

                 e.printStackTrace();     

                 //使用TransactionAspectSupport确保出现异常以后,事务能回滚

                 TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();  

                 return false;

            }  

           return true;

      }  
  • 编程式事务:就是直接在代码里手动开启事务,手动提交,手动回滚。优点就是可以灵活控制,缺点就是太麻烦了,太多重复的代码了。
  • 声明式事务:就是使用SpringAop配置事务,这种方式大大的简化了编码。需要注意的是切入点表达式一定要写正确。
  • 注解事务:直接在Service层的方法上面加上@Transactional注解。

转载于:https://my.oschina.net/chendongj/blog/1858229

你可能感兴趣的:(怎样确保java代码在抛出异常时都回滚,而不只是运行时异常)