Mybatis 切换数据源失败问题 dynamic-datasource-spring-boot-starter
1.开启了spring的事务
原因: spring开启事务后会维护一个ConnectionHolder,保证在整个事务下,都是用同一个数据库连接。
请检查整个调用链路涉及的类的方法和类本身还有继承的抽象类上是否有@Transactional注解。
2.方法内部调用
数据源核心原理是基于aop代理实现切换,内部方法调用不会使用aop。
3. @Async或者java8的ParallelStream并行流之类方法
这种情况都是新开了线程去处理,不受当前线程管控了。 可以在新开的方法上加对应的DS注解解决。
参考:https://www.kancloud.cn/tracy5546/dynamic-datasource/2264611