SpringBoot之解决整合多数据源多事物注解问题
SpringBoot之解决整合多数据源多事物注解问题
概念:
因为整合了多数据源,就代表我的项目中存在多个事物管理器,这样就不能直接使用@Transactional
修改代码:
修改user2接口 模拟异常,查看事物是否回滚,添加@Transactional
启动测试:
访问user2接口报错
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
本文来源于网络,只做技术分享,一概不负任何责任
分类:
SpringBoot
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· AI 智能体引爆开源社区「GitHub 热点速览」