首先看@Transactional,这个annotation是用来捆绑事务的
场景
2个账户,A往B账户打100元,那么A账户减少100(动作1),同时B账户增加100(动作2).
这两个动作是不可拆分的,动作1完成后如果出了错,比如说B账户被冻结,那么这个时候应当进行将钱退回到A账户,这个行为叫回滚。
动作1,动作2相继完成后,就有了回执单,相当于这个事务完成了。
应用
以Spring Boot+jpa为例,看底层代码是如何实现的
- 引包:spring-boot-autoconfigure或者包含这个包的
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-autoconfigure</artifactId>
</dependency>
<--包含这个包-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<--包含这个包-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactI