基於springboot的多資料來源自動配置實現

2022-01-24 11:24:57 字數 2066 閱讀 8019

最近做了乙個自動支援多資料來源配置的功能,基於springboot生態擴充套件,可自動識別配置檔案中的資料庫配置引數,並進行autoconfig。

功能性

非功能性

注意事項

如何使用

1、要使用多資料來源自動配置,需要將springboot自帶的datasource相關自動配置類遮蔽自動啟動。在springboot專案的啟動類上新增如下註解(若引用了druid等第三方資料來源,也需將其自配置類遮蔽)

@enableautoconfiguration(exclude = )

datasource相關配置

mybatis相關配置

spring.multi-datasource.oracle.mybatis.type-aliases-package=com.cvicse.test.bo.base

spring.multi-datasource.oracle.base-packages=com.cvicse.test.dao

pagehelper相關配置

server.port=8080

spring.multi-datasource.oracle.xa.data-source-class-name=com.alibaba.druid.pool.xa.druidxadatasource

spring.multi-datasource.oracle.driver-class-name=oracle.jdbc.oracledriver

spring.multi-datasource.oracle.url=jdbc:oracle:thin:@127.0.0.1:1521:orcl

spring.multi-datasource.oracle.username=******

spring.multi-datasource.oracle.password=******

spring.multi-datasource.oracle.mybatis.type-aliases-package=com.cvicse.test.bo.base

spring.multi-datasource.oracle.base-packages=com.cvicse.test.dao

spring.multi-datasource.db2.username=******

spring.multi-datasource.db2.password=******

spring.multi-datasource.db2.url=jdbc:db2:

spring.multi-datasource.db2.mybatis.type-aliases-package=com.cvicse.test2.bo.base

spring.multi-datasource.db2.base-packages=com.cvicse.test2.dao

spring.multi-datasource.mysql.username==******

spring.multi-datasource.mysql.password==******

spring.multi-datasource.mysql.url=jdbc:mysql:

spring.multi-datasource.mysql.mybatis.type-aliases-package=com.cvicse.test2.bo.base

spring.multi-datasource.mysql.base-packages=com.cvicse.test2.dao

Spring Boot多資料來源配置

方案實現 新建兩個配置類 即加 configuration註解的類 乙個為primarydatasourceconfig,用來配置本專案的資料來源 另乙個叫seconddatasourceconfig,用來配置需要同步的資料來源。如下 configuration public class prima...

springboot整合多資料來源

多資料來源產生的問題 事物管理 在實際專案中,怎麼樣搭建多資料來源 區分資料來源 舉個例子 2個資料來源 test001 test002 1 分包結構 com.baidu.test001 訪問test001資料庫 daoservice com.baidu.test002 訪問test002資料庫 d...

SpringBoot配置多資料來源

專案中用到了兩個資料庫,分別是oracle和mysql,涉及到了多資料來源問題,這裡做下記錄 官方講解 日誌jdbc配置 druid常見問題彙總 spring datasource type com.alibaba.druid.pool.druiddatasource base type com.a...