Spring boot 动态多数据源事物如果同步回滚 5C

目前我使用了 https://blog.csdn.net/xiazai353503200/article/details/79390879 这里的配置方法
但是目前只能单数据源事物回滚,但是我有需求是需要多数据源同时操作,一个出错同步事物回滚。有没有什么好的解决方案?

3个回答

当我们配置了事物管理器和拦截Service中的方法后,每次执行Service中方法前会开启一个事务,并且同时会缓存一些东西:DataSource、SqlSessionFactory、Connection等,所以,我们在外面再怎么设置要求切换数据源也没用,因为Conneciton都是从缓存中拿的,所以我们要想能够顺利的切换数据源,实际就是能够动态的根据DatabaseType获取不同的Connection,并且要求不能影响整个事物的特性。

qq_15396517
Victor枫 所以有没有什么好的解决方案?我现在业务场景是有存在这种需要同步回滚的情况的,如果用静态多数据源倒是可以,动态有什么好的解决方案吗?
一年多之前 回复

看看这篇 是不是会有些帮助 https://blog.csdn.net/sdmxdzb/article/details/77519725

qq_15396517
Victor枫 没有帮助,这种方式只能指定包路径更麻烦了。
一年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
Spring Boot事物手动回滚
在Dao层的方法上添加 @Transactional 当要回滚时在代码中添加 TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
Spring boot 多数据源动态切换
依赖: <?xml version="1.0" encoding="UTF-8"?> 4.0.0 org.springframework.boot spring-boot-starter-parent 2.1.1.RELEASE com.tydic.ohaotian datasourcetest 0.0.1-SN
spring boot 多数据源动态切换
总体思路 使用AOP进行数据源切换,继承AbstractRoutingDataSource实现数据源动态的获取,使用注解指定数据源。 //指定aop事务执行顺序,已保证在切换数据源的后面 @EnableTransactionManagement(order = 2) //排除数据源自动配置 @SpringBootApplication(exclude = { DataSou...
【动态多数据源】spring boot mybatis
概述 spring boot + mybatis 实现动态多数据源,本文讲解一写两读,更多的配置一样 前提:需要做好mysql的主从同步功能 实现的动态数据源的代码,主要在包conf中 DataSourceConfigurer.java ====> 数据源配置类 DataSourceKey.java ====> 数据源key类 DynamicDataSourceAspect...
spring boot动态切换多数据源
一个spring boot动态切换多数据源的完整demo。
Spring Boot多数据源动态切换
项目地址Spring Boot多数据源动态切换 实现逻辑 在配置文件application.yml中配置多个数据库(我配置的是两个),配置文件如下 spring: datasource: type: com.alibaba.druid.pool.DruidDataSource ds1: driver-class-name: com.mysql.jdbc.D...
spring 多数据源 事物
uopackage com.dep.test; import java.io.IOException; import java.util.HashMap; import java.util.Map; import org.springframework.jdbc.datasource.lookup.AbstractRoutingDataSource; import org.spr
spring 手动回滚事物
spring 手动回滚方法
Spring事物手动回滚
手动回滚: 方法1:在service层方法的catch语句中增加:TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();语句,手动回滚,这样上层就无需去处理异常(现在项目的做法)  方法2:例如service层处理事务,那么service中的方法中不做异常捕获,或者在catch语句中最后增加throw n
Spring事物回滚
在Spring中进行事务回滚, ①:通过Aop切面事务回滚 TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); ②:通过RuntimeException throw new RuntimeException(); 传播行为一:事务方法A调用非事务方法B,AB都具有事务。 出现异常数据同时...
spring事物回滚无效
错误情况1.    错误原因:spring没有扫描相应的类, 以前扫包都是在springmvc中直接这样扫了,就能够将testing下的controller和service那些都交给了spring,其实都是给了springmvc,根本没有给spring,所以spring完全无法添加事物,     解决方法: 后台springmvc中修改为      spring-mvc.xml:  ...
spring 事物回滚失败
在spring 中进行事物管理的时候,N种情况会出现事物回滚失败 1)在事物中调用自己的其他的方法,但是进行捕获了异常。 @Transtaion public void save(){         try{ save2() }catch{ } mapper.insert() } @Transatinal(开启新的事物) public  void save2(){ map
spring事物回滚之AOP
bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> property name="driverClassName" value="com.mysql.jdbc.Driver"/> property name="url" value="jdbc:mysql:
spring 事物不回滚
<beanid="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close"> <propertyname="driverClass" value="${jdbc.driverClassName}"/> <
Spring 事物回滚
方法一 第一步配置事务管理器   <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">  <property name="dataSource" ref="dataSource" />   </bean&am
Spring 事物手动回滚
手动回滚: 方法 1:在 service 层方法的 catch 语句中增加:TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); 语句,手动回滚,这样上层就无需去处理异常(现在项目的做法) 方法 2:例如 service 层处理事务,那么 service 中的方法中不做异常捕获,或者在 catch
spring手动回滚事物
方法上加注解@Transactional(rollbackFor = { Exception.class })手动回滚事物try{ xxxMapper.saveXXX(saveXXX); if(true){ throw new Exception("保存xxx失败"); } }catch (Exception e){ //在catch异常中进行手动回滚 TransactionAspe...
spring事物回滚
xml文件:(部分省略):rnrn rn rn rn rn rn PROPAGATION_REQUIRED,readOnlyrn PROPAGATION_REQUIREDrn rn rn rnrn rn rn rn rn rn rn IOrderSerivcern rn rn rn rn rn rn rn transactionInterceptor rn rn rn rnrnjava代码(部分省略):public class OrderSerivce rnpublic void saveOrder(Orders order)rn ShopCart cart=(ShopCart)ActionContext.getContext().getSession().get("cart");rn Collection products=cart.getHashMap().values();rn Iterator it=products.iterator();rn while(it.hasNext())rn Product p=it.next();rn p.setNumber(p.getNumber()-p.getQuantity());rn SpringConnFactory.getProductserivce().update(p);rn rn Integer i= orderdao.saveOrder(order);rn Iterator items=order.getOrderitem().iterator();rn while(items.hasNext())rn Orderitem item=items.next();rn item.setOrderid(i);rn SpringConnFactory.getOrderitemserivce().saveOrderitem(item);rn rn rn rn rn我故意让这句Iterator it=products.iterator();出错,结果是Integer i= orderdao.saveOrder(order);操作执行了,听说spring只对部分异常回滚事务,那应该怎么让spring对所有的异常回滚,请高手指点
Spring MVC 事物回滚
controller  方法头加  @Transactional( rollbackFor = {Exception.class}, readOnly = false ) try{ .......你带逻辑代码 }catch(Exception e){ e.printStatckTrace(); TransactionAspectSupport.currentTransa
[Spring Boot] Spring Boot 多数据源动态切换[自定义注解&AOP]
[Spring Boot] Spring Boot 多数据源动态切换[自定义注解&AOP] 目录[Spring Boot] Spring Boot 多数据源动态切换[自定义注解&AOP]基础框架准备动态数据源注册效果REFRENCES更多 手机用户请横屏获取最佳阅读体验,REFERENCES中是本文参考的链接,如需要链接和更多资源,可以关注其他博客发布地址。 平台 地址...
spring boot多数据源(AOP注解动态切换)
spring boot整合druid连接池,采用注解方式实现多数据源动态切换 jdk版本1.8 spring boot版本1.5.14
Spring boot 添加starter使用动态多数据源
maonidou(苞米豆)团队针对springboot使用多数据源提供了一个启动器:dynamic-datasource-spring-boot-starter有兴趣的可以访问github了解详细.  >> github地址 下面就简单说一下如何使用dynamic-datasource-spring-boot-starter为我们的spring boot添加多数据源 pom.xml...
Spring boot + Mybatis动态多数据源实现
参考文章: https://blog.csdn.net/ifwinds/article/details/81031630 https://www.cnblogs.com/xiaofengfeng/p/9039382.html
spring boot多数据源动态切换,事物管理
1 . 项目目标 实现 不同数据源的切换 (使用AbstractRoutingDataSource) 不同数据源之间,事物管理,多个数据源之间同时commit或者同时rollback 兼容不同的连接池(dbpc,druid) 兼容mybatis,JPA 等不同的方式 (spring- boot -starter) 以上就是该项目实现的所有功能,因代码量和篇幅...
Spring Boot 动态连接多数据源,主从数据库
微服务动态配置多数据源,主从数据库
spring boot多数据源、读写分离( AOP动态)
项目地址springboot读写分离主要根据填充Spring Boot + Mybatis多数据源和动态数据源配置 文章中动态部分坑应用场景    读写分离,多数据源,主从库具体实现1、配置文件application.yml##多数据源 datasource:   #主库   master:     jdbcUrl: jdbc:mysql://localhost:3306/pa_yqs_game?...
Spring Boot + Mybatis多数据源和动态数据源配置
网上的文章基本上都是只有多数据源或只有动态数据源,而最近的项目需要同时使用两种方式,记录一下配置方法供大家参考。 应用场景 项目需要同时连接两个不同的数据库A, B,并且它们都为主从架构,一台写库,多台读库。 多数据源 首先要将spring boot自带的DataSourceAutoConfiguration禁掉,因为它会读取application.properties文件的sprin
Spring Boot配置多数据源动态切换数据源
一、应用场景    我们再开发中经常遇到应用不同数据库的数据,比如一部分需要使用Mysql下的数据库,一部分需要使用Sql Server的数据库,主从库分离等等。这是需要我们配置多数据源来满足开发需要。...
Spring Boot +Mybatis+druid动态多数据源自由切换
Spring Boot +Mybatis+druid动态多数据源自由切换实现数据源动态切换,希望能帮到需要的人
Spring Boot多数据源事务管理
在开发企业应用时,对于使用者的一个操作实际上对应底层数据库的多个读写。由于数据操作在顺序执行的过程中,任何一步操作都有可能发生异常,异常会导致后续操作无法完成,此时由于业务逻辑并未正确的完成,之前成功操作数据的并不可靠,会产生不一致的数据,需要在这种情况下进行回退。事务的作用就是为了保证用户的每一个操作都是可靠的,事务中的每一步操作都必须成功执行,只要有发生异常就回退到事务开始未进行操作的状态。了...
Spring Boot多数据源配置
动机在最近的项目中,由于新项目要和老项目整合(新旧业务过渡),因此需要将的数据库表与老数据库表做数据库同步。 方案利用Spring Boot支持多数据源的特性,配置两个数据源来实现该需求。(这篇博客不讨论业务层面的实现方式,只讨论多数据源的配置。) 实现新建两个配置类(即加@Configuration注解的类),一个为PrimaryDatasourceConfig,用来配置本项目的数据源;另一个叫S
spring boot多数据源
springboot多数据源的连接 maven mysql
Spring Boot操作多数据源
1.创建数据库 这里创建了db1和db2两个数据库,并分别插入了一张表 表test只有两个字段:id和message(msg) 为了区分,db2中使用的是msg db1 CREATE TABLE `test` ( `id` varchar(128) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL , `message` varchar(1...
Spring Boot 多数据源
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/catoop/article/details/50564513 上篇文章介绍了如何手工使用Java代码将对象注册到Spring中,为本文“多...
spring boot 多数据源实现
1、在application.properties文件中配置多个数据源 #主数据源 spring.datasource.core.driver-class-name=com.mysql.jdbc.Driver spring.datasource.core.jdbc-url=jdbc:mysql://127.0.0.1:3306/boot_v2?useUnicode=true&chara...
Spring Boot 多数据源配置
Spring Boot 多数据源配置 本文主要介绍了,SpringBoot框架下集成mybatis的多数据源配置,一下展示了mysql和sqlserver两种数据库的链接方式。 1、添加SpringBoot多数据源的配置文件,以下链接了mysql和sqlserver两个数据源。 spring.datasource.druid.driver-class-name=com.mysql.jdbc...
spring boot 多数据源和事务管理
spring boot 配置多数据源 1 properties参数配置 # 数据源 1 spring.datasource.db1.jdbc-url = jdbc:mysql://ip:port/yangliu-dev-1?useUnicode=true&characterEncoding=utf-8&allowMultiQueries=true spring.datasource...
spring boot多数据源配置
1、在application.properties中配置数据库连接参数#数据源01database.01.driverClassName=com.mysql.jdbc.Driverdatabase.01.username=usernamedatabase.01.password=passworddatabase.01.url=url  #数据源02database.02.driverClassNa...
六、spring boot 1.5.4 配置多数据源
spring boot 已经支持多数据源配置了,无需网上好多那些编写什么类的,特别麻烦,看看如下解决方案,官方的,放心! 1.首先定义数据源配置 #=====================multiple database config============================#ds1first.datasource.url=jdbc:mysql://localhost/...
Spring Boot 整合多数据源
Spring Boot 整合多数据源 我们先创建一个maven项目: 创建两个数据库test01和test02,并且都创建一个user表 配置pom.xml project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:sch
相关热词 c#部署端口监听项目、 c#接口中的属性使用方法 c# 昨天 c#func链接匿名方法 c#怎么创建文件夹 c#从键盘接收空格 c#da/ad c#部门请假管理系统 c#服务器socket c# 默认的访问修饰符