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

2019-05-26 20:10:30 浏览数 (1)

代码语言:javascript复制
      /** 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注解。

0 人点赞