Spring+SpringMVC+MyBatis-plus配置多数据源 刺骨的言语ヽ痛彻心扉 2022-12-11 09:09 92阅读 0赞 ## 1.数据源切换工具类。用于切换数据库 ## public class DynamicDataSource extends AbstractRoutingDataSource { @Override public Logger getParentLogger() { return null; } @Override protected Object determineCurrentLookupKey() { return DataSourceContextHolder.getDbType(); } } ## 2.代码中数据库切换工具类 ## public class DataSourceContextHolder { private static final ThreadLocal<String> contextHolder = new ThreadLocal<String>(); public static void setDbType(String dbType) { contextHolder.set(dbType); } public static String getDbType() { return ((String) contextHolder.get()); } public static void clearDbType() { contextHolder.remove(); } } ## 3.静态常量存储数据源名 ## public class DataSourceType { /** * @Description: 数据源1:worksta。安检参数相关数据源 * @Param: * @Return: * @Author: WQ * @Date: 2020/9/29 */ public static final String WORKSTA = "workstaDataSource"; /** * @Description: 数据源2:workpeizhi1。检测线相关数据源 * @Param: * @Return: * @Author: WQ * @Date: 2020/9/29 */ public static final String WORKPEIZHI1 = "workpeizhi1DataSource"; } ## 4.Spring配置文件 ## ![watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXFpYW5nOTE1_size_16_color_FFFFFF_t_70][] <!--配置多数据源--> <!--数据源1:安检参数相关数据源。【worksta】--> <bean id="workstaDataSource" class="com.alibaba.druid.pool.DruidDataSource"> <property name="driverClassName" value="${worksta.jdbc.driverClassName}"></property> <property name="url" value="${worksta.jdbc.jdbcUrl}"></property> <property name="username" value="${worksta.jdbc.username}"></property> <property name="password" value="${worksta.jdbc.password}"></property> </bean> <!--数据源1:检测线参数相关数据源。【workpeizhi1】--> <bean id="workpeizhi1DataSource" class="com.alibaba.druid.pool.DruidDataSource"> <property name="driverClassName" value="${workpeizhi1.jdbc.driverClassName}"></property> <property name="url" value="${workpeizhi1.jdbc.jdbcUrl}"></property> <property name="username" value="${workpeizhi1.jdbc.username}"></property> <property name="password" value="${workpeizhi1.jdbc.password}"></property> </bean> <!-- 动态配置数据源 --> <bean id="dataSource" class="com.jdkj.detectSystem.multipleDatasources.DynamicDataSource"> <property name="targetDataSources"> <map key-type="java.lang.String"> <entry value-ref="workstaDataSource" key="workstaDataSource"></entry> <entry value-ref="workpeizhi1DataSource" key="workpeizhi1DataSource"></entry> </map> </property> <!-- 配置默认使用数据源 --> <property name="defaultTargetDataSource" ref="workstaDataSource"></property> </bean> ## 5.使用 ## ![watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXFpYW5nOTE1_size_16_color_FFFFFF_t_70 1][] [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXFpYW5nOTE1_size_16_color_FFFFFF_t_70]: /images/20221123/8b153f63cf4140c887bce216d2e6e9af.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXFpYW5nOTE1_size_16_color_FFFFFF_t_70 1]: /images/20221123/305435c48636457aabec7b7c776981c4.png
还没有评论,来说两句吧...