基本思路
运用spring的AbstractRoutingDataSource接口,实现determineCurrentLookupKey方法。
实现过程
- 配置多数据源
|
|
其中真正使用的数据源为dataSource,设置key-value来切换dataSource1和dataSource2
- 实现DynamicDataSource类
|
|
determineCurrentLookupKey的返回值就是上述xml配置中的key,做到切换数据源
应用场景
- 读写分离
- 不同类型数据源(如XA和普通数据源)切换
- 等等…
后语
这里只是提供一种比较简单的数据源切换实现过程,至于外部如何实现,有很多种方法如: 增加注解,通过SQL方法区分等等都可以。