java 声明式事务
在⽅法上增加@Transactional注解,就可以开启申明式事务
- ⾸先对于使⽤了@Transactional注解的Bean,Spring会创建⼀个代理对象作为Bean
- 当调⽤代理对象的⽅法时,会先判断该⽅法上是否加了@Transactional注解
- 如果加了,那么则利⽤事务管理器创建⼀个数据库连接
- 并且修改数据库连接的autocommit属性为false,禁⽌此连接的⾃动提交,这是实现Spring事务
⾮常重要的⼀步 - 然后执⾏当前⽅法,⽅法中会执⾏sql
- 执⾏完当前⽅法后,如果没有出现异常就直接提交事务
如果出现了异常,并且这个异常是需要回滚的就会回滚事务
1 @Service
2 public class UserService {3 @Transactional(isolation = Isolation.REPEATABLE_READ
4 public void add(UserModel userModel) {5 saveData(userModel);
6 updateData(userModel);
7 }
8 }
还没有评论,来说两句吧...