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