多資料來源配置主要用到spring的abstractroutingdatasource,網上介紹資料也有很多,這裡主要做個備份
除了資料庫連線的依賴,spring的依賴,mybatis的依賴之外還需要
com.alibaba
druid-spring-boot-starter
1.1.5
使用com.alibaba.druid.spring.boot.autoconfigure.druiddatasourcebuilder生成datasource
#mysql
multiple.datasource.mysql0.driver-class-name=com.mysql.jdbc.driver
multiple.datasource.mysql0.url=jdbc:mysql:
multiple.datasource.mysql0.username=proxy
multiple.datasource.mysql0.password=proxy.ibk
#sqlserver
multiple.datasource.sqlserver0.driver-class-name=com.microsoft.sqlserver.jdbc.sqlserverdriver
multiple.datasource.sqlserver0.url=jdbc:sqlserver://***:1433;
multiple.datasource.sqlserver0.username=**
multiple.datasource.sqlserver0.password=***
# 以下多個資料來源
....
為了方便管理多資料來源,我們使用列舉類進行管理
public
enum datasourcekey
建立資料來源bean
@configuration
public
class
dynamicdatasourceconfiguration
@bean
@configurationproperties
(prefix =
"multiple.datasource.sqlserver0"
)public datasource sqlserver0()
/** * 核心動態資料來源
** @return 資料來源例項
*/@bean
public datasource dynamicdatasource()
@bean
public sqlsessionfactory sqlsessionfactory()
throws exception
@bean
public sqlsessiontemplate sqlsessiontemplate()
throws exception
/** * 事務管理
** @return 事務管理例項
*/@bean
public platformtransactionmanager platformtransactionmanager()
}
此類將多資料來源註冊到spring容器,且註冊到abstractroutingdatasource中
建立sql會話工廠
建立多資料來源上下文切換類
public
class
dynamicdatasourcecontextholder
/** * 獲取當前使用的資料來源
** @return 當前使用資料來源的id
*/public
static datasourcekey get()
/** * 設定當前使用的資料來源
** @param value 需要設定的資料來源id
*/public
static
void
set(datasourcekey value)
}
abstractroutingdatasource
public
class
dynamicroutingdatasource
extends
abstractroutingdatasource
}
以上為多資料來源配置。在使用時,只需要dynamicdatasourcecontextholder.set(datasourcekey.mysql0);
即可實時切換資料來源。 paoding rose jade多資料來源配置
官網文件沒有相關的說明,所以費了些勁,但是確實很簡單,發出來,希望能幫助到有需要的人 class org.springframework.jdbc.datasource.drivermanagerdatasource name driverclassname value com.mysql.jdbc...
Spring Boot多資料來源配置
方案實現 新建兩個配置類 即加 configuration註解的類 乙個為primarydatasourceconfig,用來配置本專案的資料來源 另乙個叫seconddatasourceconfig,用來配置需要同步的資料來源。如下 configuration public class prima...
springboot整合多資料來源
多資料來源產生的問題 事物管理 在實際專案中,怎麼樣搭建多資料來源 區分資料來源 舉個例子 2個資料來源 test001 test002 1 分包結構 com.baidu.test001 訪問test001資料庫 daoservice com.baidu.test002 訪問test002資料庫 d...