实现思路
重写Spring的AbstractRoutingDataSource抽象类的determineCurrentLookupKey方法。
我们来看下Spring-AbstractRoutingDataSource的源码
AbstractRoutingDataSource获取数据源之前会先调用determineCurrentLookupKey方法查找当前的lookupKey。
Object lookupKey = determineCurrentLookupKey();DataSource dataSource = this.resolvedDataSources.get(lookupKey);.......return dataSource;lookupKey为数据源标识,因此通过重写这个查找数据源标识的方法就可以让spring切换到指定的数据源.
从变量定义中可以知道resolvedDataSources为Map类型的对象。
private Map<Object, DataSource> resolvedDataSources;
示例
步骤一 新建Maven工程
依赖如下: pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http:///yangshangwei/DynamicDataSource以上这篇Spring-基于Spring使用自定义注解及Aspect实现数据库切换操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。