2021-07-03

Spring Boot 事物回滚

Springboot中事务的使用:

1、启动类加上@EnableTransactionManagement注解,开启事务支持(其实默认是开启的)。

2、在使用事务的public(只有public支持事务)方法(或者类-相当于该类的所有public方法都使用)加上@Transactional注解。

在实际使用中一般是在service中使用@Transactional,那么对于controller->service流程中:

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

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

 如果想要对抛出的任何异常都进行自动回滚(而不是只针对RuntimeException),只需要在使用@Transactional(rollbackFor = Exception.class)即可。

开启事务的方法中事务回滚的情况:

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

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

③注意:如果在try-catch语句中对可能出现的异常(RuntimeException)进行了处理,没有再手动throw异常,spring认为该方法成功执行,不会进行回滚,此时需要调用②中方法进行手动回滚 (java 框架项目案例:www.fhadmin.cn)

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

原文转载:http://www.shaoqun.com/a/845180.html

跨境电商:https://www.ikjzd.com/

张洁:https://www.ikjzd.com/w/1663

燕文物流:https://www.ikjzd.com/w/2229

amazon go:https://www.ikjzd.com/w/67


Springboot中事务的使用:1、启动类加上@EnableTransactionManagement注解,开启事务支持(其实默认是开启的)。2、在使用事务的public(只有public支持事务)方法(或者类-相当于该类的所有public方法都使用)加上@Transactional注解。在实际使用中一般是在service中使用@Transactional,那么对于controller->
dojo:https://www.ikjzd.com/w/2052
盘点:2018跨境电商内外形势变化多端,这个旺季卖家能过得安心吗?:https://www.ikjzd.com/articles/11849
警告,加拿大邮政国际包裹递送或将延误至2019年3月!:https://www.ikjzd.com/articles/11852
2018亚马逊"网络星期一"创新纪录 各国站点开启全球招商模式!:https://www.ikjzd.com/articles/11854
纯干货:卖家不得不知道的亚马逊站外Deal折扣网站汇总大全!:https://www.ikjzd.com/articles/11855
老师让我脱她乳罩摸她乳 老师的胸软软的真好吃:http://lady.shaoqun.com/a/247803.html
女朋友越来越会叫 她快高潮时故意拔出来:http://lady.shaoqun.com/m/a/248369.html
打开腿我想尝尝你的味道 公公舔吸我下面的故事:http://lady.shaoqun.com/m/a/247746.html
男票是用什么方式哄你生气的?网友:继续工作就脱裤子:http://lady.shaoqun.com/a/400673.html
想他的时候,不要说"我想你"。这三个字可以让他疯狂的爱你:http://lady.shaoqun.com/a/400674.html
男的强行和女的发生关系,向她要了20块钱的"营养费"!:http://lady.shaoqun.com/a/400675.html
济南大二学生网购强奸女学生:http://lady.shaoqun.com/a/400676.html

No comments:

Post a Comment