You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							45 lines
						
					
					
						
							1.1 KiB
						
					
					
				
			
		
		
	
	
							45 lines
						
					
					
						
							1.1 KiB
						
					
					
				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(); | 
						|
    } | 
						|
}
 | 
						|
 |