springMVC+c3p0多数据源配置

//数据源公用设置    

dataSource" name="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">  
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
   
 
     
 
         
           ${jdbc.from.url}  
       
 
         
           ${jdbc.from.username}  
       
 
         
           ${jdbc.from.password}  
       
 
 
 
         
           ${jdbc.to.url}  
       
 
         
           ${jdbc.to.username}  
       
 
         
           ${jdbc.to.password}  
       
 
 
    
     
dynamicDataSource" class="cn.com.sanfo.common.DynamicDataSource">  
     
         
             
             
       
 
   
 
     
 
    
    
    

//ref="动态数据源id"
        dataSource" ref="dynamicDataSource"/>
   
    
  
    

//ref="动态数据源id"
        dataSource" ref="dynamicDataSource"/>
   

//动态数据源路由类DynamicDataSource

import org.springframework.jdbc.datasource.lookup.AbstractRoutingDataSource;

public class DynamicDataSource extends AbstractRoutingDataSource {
    public static final String DATA_SOURCE_FROM = "fromDataSource";// 对应动态数据源配置中的key
    public static final String DATA_SOURCE_TO = "toDataSource";
    // 本地线程,获取当前正在执行的currentThread
    public static final ThreadLocal contextHolder = new ThreadLocal();

    public static void setCustomerType(String customerType) {

        contextHolder.set(customerType);

    }

    public static String getCustomerType() {
        return contextHolder.get();
    }

    public static void clearCustomerType() {
        contextHolder.remove();
    }

    @Override
    protected Object determineCurrentLookupKey() {
        return getCustomerType();
    }
}

//测试

        DynamicDataSource.clearCustomerType();
        DynamicDataSource.setCustomerType(DynamicDataSource.DATA_SOURCE_TO);

        System.out.print(DynamicDataSource.getCustomerType());

 

你可能感兴趣的:(开发问题,SQLserver)