1.springboot使用事务需要引入sprint-tx,但是在结合mybatisplus时,mybatis-plus已经代为引入了
2.在springboot的启动类或者某个@Configuration上加上@EnableTransactionManagent开启事务的支持(这个@EnableTransactionManagent是否必须添加,因为我没有添加也可以使用事务,这是为什么呢?是必须加的,但是spring-boot会自动装配,所以我们不用必须手动添加,但是springboot必须添加)
3.在service中使用@Transactional就可以使用事务了,@Transactional添加在方法中,方法支持事务,如果将@Transactional添加在类上,则整个类的所有方法都默认支持事务
4.@Transactional默认回滚的是RuntimeExcaption,如果不是抛出的RuntimeException则不会被回滚,【在spring框架下,所有的异常都被org.springwork重写为RuntimeExcetpion,是否说明在service中抛出的所有异常都会被回滚,暂未验证】
5.@Transactional(rollbackFor=Excetpion.class)可以指定步回滚的异常
6.使用try catch捕捉异常进行异常处理,除了throw异常,不会触发回滚
参考:
https://blog.csdn.net/chaitoudaren/article/details/105622751
https://blog.csdn.net/qq_35890572/article/details/96286142