springboot多資料來源配置

2021-09-11 00:02:59 字數 2400 閱讀 5640

多資料來源配置主要用到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...