spring 通过继承实现 org.springframework.jdbc.datasource.lookup.AbstractRoutingDataSource 可以实现多数据源的动态切换。
琐碎的配置在这里省略。。。
ps:本文也有参考自:https://www.cnblogs.com/wyb628/p/7240061.html
感谢 LeoWang 详细整理的博客。
本次遇到的问题:
DynamicDataSourceHolder.setDataSourceType(TEST_DATASOURCE);
的切换没有起到效果,一直报 xxx.table doesnt exist SQL异常。
原因:
我是在service层进行数据源切换的,而 service 层配置了事务注解,而controller调用service具体函数的时候已经开启了事务,数据源锁定,因此数据源动态切换无效。
解决ban办法:
在controller层 调用server层方法之前进行切换,service方法调用后显式的将数据源切回默认数据源。