实现多数据源切换步骤如下:
1.在数据源的文件中添加需要切换的数据源信息
2.在配置文件中加上需要切换的数据源
3.DynamicDataSourceContextHolder类保存及获取数据源
package com.heyue.util.datesource; import org.springframework.jdbc.datasource.lookup.AbstractRoutingDataSource; /** * @author: * @Date: * @Description: */ public class DynamicDataSource extends AbstractRoutingDataSource { @Override protected Object determineCurrentLookupKey() { return DynamicDataSourceHolder.getDataSourceType(); } } /** * @author: * @Date: * @Description: */ public class DynamicDataSourceHolder { /** * 对应配置文件写的数据库名 * */ public final static String DATE_SOURCE_GRANDLINK = "grandkLinkdataSource"; public final static String DATE_SOURCE_OFFINAL = "officialDataSource"; // 用ThreadLocal来设置当前线程使用哪个dataSource private static final ThreadLocal<String> contextHolder = new ThreadLocal<String>(); public static void setDataSourceType(String dataSource) { contextHolder.set(dataSource); } public static String getDataSourceType() { return contextHolder.get(); } public static void clearDataSourceType() { contextHolder.remove(); } }
4.在需要切换数据库的地方加上一下内容
切换指定数据源:DynamicDataSourceHolder.setDataSourceType(DynamicDataSourceHolder.DATE_SOURCE_OFFINAL);