springboot之動態切換多資料來源

2021-10-07 13:53:30 字數 2051 閱讀 7453

1.註冊多資料來源:

@configuration

public class datasourceconfiguration

/*** 廣州資料來源

*/@bean(name = "guangzhoudatasource")

@qualifier("guangzhoudatasource")

@configurationproperties(prefix="spring.datasource.guangzhou")

public datasource guangzhoudatasource()

/*** 清遠資料來源

*/@bean(name = "qingyuandatasource")

@qualifier("qingyuandatasource")

@configurationproperties(prefix="spring.datasource.qingyuan")

public datasource qingyuandatasource()

/*** 韶關資料來源

*/@bean(name = "shaoguandatasource")

@qualifier("shaoguandatasource")

@configurationproperties(prefix="spring.datasource.shaoguan")

public datasource shaoguandatasource()

/*** cancl資料來源

*/@bean(name = "secondarydatasource")

@qualifier("secondarydatasource")

@configurationproperties(prefix="spring.datasource.secondary")

public datasource secondarydatasource()

@bean(name = "dynamicdatasource")

@primary

public datasource dynamicdatasource()

}

2.將資料來源交給abstractroutingdatasource

/**

* @author cheng zhihua

* @date 2019-11-05 16:01

* @description 核心方法 :繼承abstractroutingdatasource 類,將資料來源交給abstractroutingdatasource進行注入使用

**/@slf4j

public class dynamicdatasource extends abstractroutingdatasource ",dynamicdatasourcecontextholder.getdatasourcetype());

return dynamicdatasourcecontextholder.getdatasourcetype();

}}

3.每個請求與執行緒繫結,保證各個請求之前互不影響

/**

* @author cheng zhihua

* @date 2019-11-05 16:02

* @description

**/public class dynamicdatasourcecontextholder

public static string getdatasourcetype()

public static void cleardatasourcetype()

public static boolean containsdatasource(string datasourceid)

}

4.呼叫一定要在事務之前,在controller層

/**

* 設定當前執行緒的資料庫連線

* * @param data

*/

private void threadlocalparamset(mapdata)

springboot 動態切換環境

springboot 動態切換環境 一般我們在開發中會有 開發 測試 預生產 生產環境的分類,這個時候我們會遇到在專案部署打包的時候需要動態的去切換環境,怎樣去實現動態環境的切換呢?好了,廢話不多說直接整乾貨。1 首先我們在springboot的pom.xml中新增專案中的環境配置,如圖 我們這邊先...

springboot前端動態切換日誌等級

日誌級別在生產環境中尤為重要,一般都是配置為error級別,如果我想看更多的日誌呢?切換很麻煩,所以在spring boot1.5.x以上的版本支援日誌級別動態切換了。首先引入依賴 org.springframework.boot spring boot starter actuator 在spri...

springboot 多資料來源動態切換

1.取消單資料來源預設配置 datasourceautoconfiguration.class public static void main string args 2.切換資料來源 aspect component lazy false order 0 order設定aop執行順序 使之在資料庫...