Springboot通过aop实现事务控制过程解析
2020-03-11 17:51
1126 查看
spring的事务控制本质上是通过aop实现的。
在springboot中使用时,可以通过注解@Transactional进行类或者方法级别的事务控制,也可以自己通过spring提供的事务管理器手动控制事务
一、 @Transactional注解进行进行类或者方法级别的事务控制
不需要进行特别的设置,按照正常的配置整合spring和mybatis后,在需要进行事务控制的类上或者方法上加上
@Transactional注解,即可对其进行事务控制。
二、手动控制事务
当需要在一个方法的内部进行事务控制时,就需要利用spring提供的事务管理器来手动控制。在方法所在的类中注入事务管理器,然后在方法中需要的位置利用事务管理器进行控制:开启事务,提交事务,回滚事务
@Autowired PlatformTransactionManager platformTransactionManager; @Autowired TransactionDefinition transactionDefinition; public void testTransaction() { //开启事务 TransactionStatus transactionStatus = platformTransactionManager.getTransaction(transactionDefinition); try { CategoryInfo categoryInfo1=new CategoryInfo(); categoryInfo1.setName("分类1"); categoryDataDao.add(categoryInfo1); //模拟发生异常,事务回滚后应该数据库两条记录都没有 int i=1/0; CategoryInfo categoryInfo2=new CategoryInfo(); categoryInfo2.setName("分类2"); categoryDataDao.add(categoryInfo2); //提交事务 platformTransactionManager.commit(transactionStatus); } catch (Exception e) { logger.error("发生异常事务回滚"); platformTransactionManager.rollback(transactionStatus); } }
以上就是本文的全部内容,希望对大家的学习有所帮助
您可能感兴趣的文章:
相关文章推荐
- springboot中自定义异常以及定制异常界面实现过程解析
- Springboot整合MybatisPlus的实现过程解析
- Spring Boot + Vue Element实现Excel文件上传、解析、下载(含完整实现过程)
- SpringBoot 通过自定义注解实现AOP切面编程实例
- 从动态代理视角来看Spring AOP,并实现事务控制
- Springboot+Mybatis+Maven+Oracle+Cassandra+事务(Aop)+定时任务实现
- Spring aop事务代理对象通过TransactionInterceptor处理目标方法事务过程,cglib方式
- JAVAEE之Spring学习(三)---通过aop切面实现事务处理
- SpringBoot整合aop面向切面编程过程解析
- Spring aop 通过获取代理对象实现事务切换
- (代码例子)spring基于注解AOP实现事务控制
- 杨老师课堂之springAOP事务控制源码解析
- spring 基于AOP事务控制实现的基础
- 【SpringBoot】Spring Boot热部署(第7章 Spring Boot项目构建过程解析 第8章 Spring Boot项目热部署的实现 )
- 基于springboot实现整合shiro实现登录认证以及授权过程解析
- springboot实现上传并解析Excel过程解析
- Spring Boot 2和Redis例子实现过程解析
- Spring aop 通过获取代理对象实现事务切换
- spring通过注解实现声明式事务控制
- SpringBoot(一) 如何实现AOP的权限控制