1.数据源连接,默认连接数据源
2.通过继承AbstractRoutingDataSource管理数据源
import org.springframework.jdbc.datasource.lookup.AbstractRoutingDataSource;
public class DynamicDataSource extends AbstractRoutingDataSource{
public static final String DATASOURCE_SRM = "dataSourceSRM";
public static final String DATASOURCE_BI = "dataSourceBI";
public static final String DATASOURCE_GJ = "dataSourceGJ";
public static final String DATASOURCE_IWMS = "dataSourceIWMS";
private static final ThreadLocal<String> dataSourceKey = new InheritableThreadLocal<String>();
public static void setDataSourceKey(String dataSource) {
dataSourceKey.set(dataSource);
}
public static void clearDataSourceKey() {
dataSourceKey.remove();
}
public static String getDataSourceKey() {
return ((String) dataSourceKey.get());
}
@Override
protected Object determineCurrentLookupKey() {
return dataSourceKey.get();
}
}
3.切换数据源,记录数据源查询日志到默认数据源
4.在mapper连接对应数据源的表进行数据查询
5.保存日志到默认数据源
6.事务处理所有的数据源
结束