SpringBoot多数据源事务管理机制
2018-08-12 22:34
190 查看
写到多数据源事务来了就必定写成功了多数据源项目,可以参考我上一篇博客:SpringBoot根据包名进行区分使用多数据源
1、文章中的第七步其实就已经配置好了事务管理器到Spring容器了
按照套路来第二个数据源的事务管理Bean名字大家应该想到了那就是“test2TransactionManager”
2、是时候改装Service层加上事务注解了---->记着这里是个坑
3、测试------------>报错
很显然,有多个事务,容器不知道我们要的是哪个事务,所以第二步的那个坑现在来填
4、填坑
5、问题-------->当Controller层带着第二个参数age=0到这个Service方法来,运行后的结果对两个数据到数据库的结果是怎样的?
不要偷看答案
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
答案:
第一个成功插入数据库,第二个失败进行回滚
解答:
此Service方法上面加上的注解事务为第二个数据源,所以,第一个数据源它可管不着,第一个执行掉第一行语句就已经插入到数据库了,第二个由于事务管着了,所以需要等到方法完全执行完毕才能够插入到数据库,这个时候发现此方法异常了,于是进行了数据回滚操作。
那么问题来了,如果是在分布式项目环境下,又该如何处理SpringBoot的事务问题呢?
我的下一篇博客:SpringBoot使用jta+atomikos解决分布式事务
阅读更多相关文章推荐
- spring boot多数据源 分布式事务管理
- Spring Boot多数据源及其事务管理配置方法
- Springboot+Mybatis+Druid 实现多数据源,与事务管理
- springboot多数据源指定不同事务管理器
- Spring Boot多数据源及其事务管理配置
- 3分钟搞定SpringBoot+Mybatis+druid多数据源和分布式事务
- Spring3数据库事务管理机制
- Spring3核心技术之事务管理机制
- Spring入门6事务管理2 基于Annotation方式的声明式事务管理机制
- Springboot+atomikos+jta实现分布式事务统一管理
- Spring Boot中的事务管理
- springboot mybatis 事务管理
- Spring3.0+Hibernate+Atomikos多数据源分布式事务管理
- Spring3核心技术之事务管理机制
- Spring boot jpa 删除数据和事务管理的问题实例详解
- springboot【29】事务管理
- Spring3核心技术之事务管理机制
- [转]Spring3核心技术之事务管理机制
- 【SpringBoot】数据库操作与事务管理
- 12.玩转Spring Boot 事务管理