1、切换数据源(通过切换线程)
package com.hlsa.common.configure.db;
public class DataSourceHolder {
private static final ThreadLocal<String> dataSources = new ThreadLocal<>();
public static void setDataSource(String customerType){
dataSources.set(customerType);
}
public static String getDataSource(){
return dataSources.get();
}
public static void clearDataSource(){
dataSources.remove();
}
}
2、通过上面的Holder 传值切换数据源
package com.hlsa.common.configure.db;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Primary;
import org.springframework.jdbc.datasource.lookup.AbstractRoutingDataSource;
import org.springframework.stereotype.Component;
import javax.sql.DataSource;
import java.util.HashMap;
import java.util.Map;
public class DynamicDataSource extends AbstractRoutingDataSource {
@Override
protected Object determineCurrentLookupKey() {
logger.info("当前数据源:"+DataSourceHolder.getDataSource()<