项目背景
dynamic data source +shardingSphere4.1.1
关键在于dynamic data source 和shardingJDBC结合起来的配置
首先要升级snakeyaml到1.33 不然会报一个错:
ShardingSphereYamlConstructor$1.setCodePointLimit(I)
排除其他包的snakeyaml依赖,否则会冲突。
如果使用seata,报sub class 无法被代理的问题
修改配置文件
seata:
use-jdk-proxy: true
因为shardingSphereDataSource的dataSource是个final的 seata的proxy处理dataSource会有问题 切换一下代理 使用jdk的proxy
最后是动态数据源的配置类
1.png
这里没有在yml中写shardingSphere的配置 而是另开了一个文件,直接加载的另外的文件创建的shardingSphere的数据源,放入动态数据源里面。