1.添加事务依赖
<!-- 用来开启事务使用 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
</dependency>
<!-- springboot整合的事务开启依赖,无论是mybatis或是mybatis-plus都适用 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-aop</artifactId>
</dependency>
@EnableTransactionManagement和@Transactional注解都在spring-tx。
mybatis-plus-boot-starter不需要进行依赖,因为它以及默认引入了sprint-tx
2.开启和使用事务
1.在Springboot的启动类上,或是某个配置类上添加注@EnableTransactionManagement
mybatis-plus已经配置了@EnableTransactionManagement所以不用开启
2.在具体要进行开始事务的类上或方法上添加注解@Transactional
- 使用在类上,表示这一个类的所有方法都会添加上事务
- 使用在方法上,表示这一个添加了该注解的方法才会有事务
- @Transactional默认回滚的是RuntimeExcaption,如果不是抛出的RuntimeException则不会被回滚。所以如果try catch捕获异常了,一定要将异常抛出去
- @Transactional(rollbackFor=Excetpion.class),在@Transactional注解中如果不配置rollbackFor属性,那么事物只会在遇到RuntimeException的时候才会回滚,加上rollbackFor=Exception.class,可以让事物在遇到非运行时异常时也回滚。
参考:
使用SpringBoot集成Mybatis或Mybatis-plus开启事务_自律的冷静的博客-CSDN博客_mybatis如何开启事务