前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >SpringBoot之解决整合多数据源多事物注解问题

SpringBoot之解决整合多数据源多事物注解问题

作者头像
彼岸舞
发布2021-02-02 11:05:54
7880
发布2021-02-02 11:05:54
举报
文章被收录于专栏:java开发的那点事

SpringBoot之解决整合多数据源多事物注解问题

概念:

  因为整合了多数据源,就代表我的项目中存在多个事物管理器,这样就不能直接使用@Transactional

修改代码:

修改user2接口 模拟异常,查看事物是否回滚,添加@Transactional

启动测试:

访问user2接口报错

代码语言:javascript
复制
2021-01-28 12:36:39,975 [http-nio-8082-exec-3] ERROR (DirectJDKLog.java:175)- Servlet.service() for servlet [dispatcherServlet]
 in context with path [] threw exception [Request processing failed; nested exception is 
org.springframework.beans.factory.NoUniqueBeanDefinitionException: No qualifying bean of type 
'org.springframework.transaction.TransactionManager' available: expected single matching bean but found 2: 
springbootTransactionManager,springbootdtsTransactionManager] with root cause
org.springframework.beans.factory.NoUniqueBeanDefinitionException: No qualifying bean of type 'org.springframework.transaction.TransactionManager'
 available: expected single matching bean but found 2: springbootTransactionManager,springbootdtsTransactionManager

因为我们直接使用的@Transactional但是在Spring的事物管理器中却有两个事物管理器,这时他就不知道使用哪个了

这里说一下,在Springboot2之后默认就是开始事物的不用单独写@EnableTransactionManager了

解决:

  在事物的注解中指定事物管理器

指定为springbootTransactionManager

再次测试,清空数据库,先测试一下错误的,把age输入为0,看会不会插入数据

都断出现除以0的错误

查看数据库有没有数据

刷新后并没有数据,事物控制成功

尝试输入正常值

后端没有报错,数据库成功插入数据

到此,多数据源单事物问题解决完成

作者:彼岸舞

时间:2021\01\28

内容关于:SpringBoot

本文来源于网络,只做技术分享,一概不负任何责任 

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-01-28 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • SpringBoot之解决整合多数据源多事物注解问题
    • 概念:
      • 修改代码:
        • 启动测试:
          • 解决:
      相关产品与服务
      数据库
      云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档