关于typescript:Spring-Boot-事物回滚

Springboot中事务的应用:

1、启动类开启事务反对(其实默认是开启的)。

2、在应用事务的public(只有public反对事务)办法(或者类-相当于该类的所有public办法都应用)加上@Transactional注解。

在理论应用中个别是在service中应用@Transactional,那么对于controller->service流程中:

如果controller未开启事务,service中开始了事务,service胜利执行,controller在之后的运行中出现异常(谬误),不会主动回滚。

也就是说,只有在开启事务的办法中出现异常(默认只有非检测性异样才失效-RuntimeException )(谬误-Error)才会主动回滚。

如果想要对抛出的任何异样都进行主动回滚(而不是只针对www.cungun.comRuntimeException),只须要在应用(rollbackFor = Exception.class)即可。

开启事务的办法中事务回滚的状况:

①未发现的异样,程序运行过程中主动抛出RuntimeException或者其子类,游戏程序终止,主动回滚。

②应用TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();进行手动回滚。

③留神:如果在try-catch语句中对可能呈现的异样(RuntimeException)进行了解决,没有再手动throw异样,spring认为该办法胜利执行,不会进行回滚,此时须要调用②中办法进行手动回滚 (java 框架我的项目案例:fhadmin.cn)

另外,如果try-catch语句在finally中进行了return操作,那么catch中手动抛出的异样也会被笼罩,同样不会主动回滚。
try{

throw new RuntimeException();

}catch(RuntimeException e){

e.printStackTrace();

}finally{
}
//会主动回滚
try{

throw new RuntimeException();

}catch(RuntimeException e){

e.printStackTrace();
throw new RuntimeException();

}finally{
}

【腾讯云】云产品限时秒杀,爆款1核2G云服务器,首年99元

阿里云限时活动-1核2G-1M带宽-40-100G ,特惠价87.12元/年(原价1234.2元/年,可以直接买3年),速抢

本文由乐趣区整理发布,转载请注明出处,谢谢。

You may also like...

发表评论

邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据