springboot 多數據源配置不生效遇到的坑及解決

多數據源配置不生效遇到的坑

**
同步數據時遇到多個數據源切換的問題,配置瞭yml文件時候發現啟動的時候不加載數據源的配置。
**
spring:
datasource:
db1:
driver-class-name:xxxxxxx
url:jdbc:xxxxxxx
username:root
password:111111
db2:
driver-class-name:xxxxxx
url:xxxxxx
username:root
password:111111

等等。。。。。。。。

每個配置都檢查瞭,沒有寫錯,對瞭好幾遍。折騰瞭半天。。。。。。

解決方案

yml配置文件裡格式不對齊,db1 db2 db3 要在同一個列上

在這裡插入圖片描述

編譯器沒有任何提示,多瞭一個空格或者不對齊都不會加載。

踩坑SpringBoot配置多數據源,循環引用問題

最近在使用SpringBoot配置AOP動態數據源,通過繼承AbstractRoutingDataSource這個類來實現的,在使用的時候報瞭一個錯誤,如下

大概就是dynamicDataSource依賴dataSourceScxys, dataSourceScxys依賴DataSourceInitializerInvoker,而DataSourceInitializerInvoker又依賴dynamicDataSource,造成一個循環引用,在Spring初始化bean的時候就不知道該先初始化哪一個。

解決辦法

在springboot啟動的時候排除其自動配置類,如下

以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。

推薦閱讀: