spring+mybitas 實現多數據源動態切換

1 因爲項目須要,須要將不一樣來源的數據存入不一樣的數據庫,因此須要根據入參的信息動態切換數據源java

項目core層採用了spring+mybitas 方式進行架構spring

1 在spring的配置中定義兩個數據源 sql

 

 

2建立一個新的類 MultiDataSource數據庫

public class MultiDataSource extends AbstractRoutingDataSource {session

private static final ThreadLocal<String> dataSourceKey = new InheritableThreadLocal<String>();

public static void setDataSourceKey(String dataSource) {
    dataSourceKey.set(dataSource);
}

@Override
protected Object determineCurrentLookupKey() {
    return dataSourceKey.get();
}

}架構

這個類須要繼承 AbstractRoutingDataSource 
而且重寫 determineCurrentLookupKey方法 
3 在spring 的配置文件中新增配置ide

 

<map key-type="java.lang.String">
     <entry value-ref="dataSource1" key="dataSource1"></entry>
     <entry value-ref="dataSource2" key="dataSource2"></entry>
  </map>



 

4 將配置的dataSource 添加到sessionFactory 中 


 code

5 將sessionFactory 注入到sqlSession中

 繼承

6 動態切換數據源決定採用spring-aop 添加切點 去進行動態切換get

6.1 新建數據切換類 public class DataBaseAop {

相關文章
相關標籤/搜索