123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- package com.ruoyi.common.config.datasource;
- import org.slf4j.Logger;
- import org.slf4j.LoggerFactory;
- /**
- * 数据源切换处理
- *
- * @author ruoyi
- */
- public class DynamicDataSourceContextHolder
- {
- public static final Logger log = LoggerFactory.getLogger(DynamicDataSourceContextHolder.class);
- /**
- * 使用ThreadLocal维护变量,ThreadLocal为每个使用该变量的线程提供独立的变量副本,
- * 所以每一个线程都可以独立地改变自己的副本,而不会影响其它线程所对应的副本。
- */
- private static final ThreadLocal<String> CONTEXT_HOLDER = new ThreadLocal<>();
- /**
- * 设置数据源的变量
- */
- public static void setDataSourceType(String dsType)
- {
- log.info("切换到{}数据源", dsType);
- CONTEXT_HOLDER.set(dsType);
- }
- /**
- * 获得数据源的变量
- */
- public static String getDataSourceType()
- {
- return CONTEXT_HOLDER.get();
- }
- /**
- * 清空数据源变量
- */
- public static void clearDataSourceType()
- {
- CONTEXT_HOLDER.remove();
- }
- }
|