在公司做了个项目,同事搭的架子,用的springboot框架,但是没有service层,我在想以前学习的事务相关的操作都是在service层添加注解@Transactional,这次就直接试试添加到controller层了。
但是之前没测试过事务的问题,这次就自己简单测试了一下,在这记录一下。
首先先不添加事务注解。

同时在一个方法中,自定义一个异常。该方法中有update和delete两种数据库操作方法。运行方法后,在delete方法前的update方法会执行成功,当报出异常后,后续代码不执行。
当给controller加入@Transactional注解后,运行方法,逻辑不变(在delete方法前的update方法会执行成功,当报出异常后,后续代码不执行。),但是之前的update方法会进行回滚操作,数据库会恢复到此update方法执行前的状态。

不过要多说一点,如果方法中的异常try catch抓取了,异常前后的代码就都会执行。即update和delete方法均执行成功。throw抛出的话,则方法均不执行成功(throw无效)。

来源:CSDN
作者:搬砖菜鸟H先生
链接:https://blog.csdn.net/weixin_43877856/article/details/103627709