| | |
| | | package com.ruoyi.framework.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();
|
| | | }
|
| | | }
|
| | | package com.ruoyi.framework.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(); |
| | | } |
| | | } |