SpringCloud多資料來源實現

2022-07-27 17:42:10 字數 1883 閱讀 1589

1、列舉多資料來源-定義一一對應變數

/***

* 列出所有的資料來源key(常用資料庫名稱來命名)

* 注意:

* 1)這裡資料來源與資料庫是一對一的

* 2)databasetype中的變數名稱就是資料庫的名稱

*/public enum databasetype

public static void setdatabasetype(databasetype type)

public static databasetype getdatabasetype()

}3、動態資料來源

import org.springframework.jdbc.datasource.lookup.abstractroutingdatasource;

/***  動態資料來源(需要繼承abstractroutingdatasource)

*/public class dynamicdatasource extends abstractroutingdatasource

}4、資料來源配置

資料來源1:

test1.driverclassname=org.postgresql.driver

test1.url=jdbc:postgresql://localhost:5432/test1

test.username=test1

test1.password=123456

test1.remove-abandoned=true

test1.remove-abandoned-timeout=120

test1.test-on-borrow=true

資料來源2:

test2.driverclassname=org.postgresql.driver

test2.url=jdbc:postgresql://localhost:5432/test2

test2.username=test2

test2.password=123456

test2.remove-abandoned=true

test2.remove-abandoned-timeout=120

test2.test-on-borrow=true

5、資料來源初始化

@bean

public datasource test1datasource() throws exception

@bean

public datasource test2datasource() throws exception

/*** @throws exception

* @primary 該註解表示在同乙個介面有多個實現類可以注入的時候,預設選擇哪乙個,而不是讓@autowire註解報錯

* @qualifier 根據名稱進行注入,通常是在具有相同的多個型別的例項的乙個注入(例如有多個datasource型別的例項)

*/@bean

@primary

public dynamicdatasource datasource() throws exception

return bean.getobject();

}/**

* 配置事務管理器

*/@bean

public datasourcetransactionmanager transactionmanager(dynamicdatasource datasource) throws exception

6、②查詢test2的資料時,需要在呼叫之前指定資料來源,如下**:

databasecontextholder.setdatabasetype(databasetype.test2);

③同時需要查詢test1和test2的資料時,需要在呼叫之前指定正確的資料來源。

SpringBoot Redis 多資料來源

session存到redis後,cache和session是在乙個庫的 使用redis多資料配置可以分開。這樣ssession的redis伺服器可以單獨作為認證服務,多個業務模組可以配置單獨的cache庫,防止多模組key衝突的問題。原始碼 github 增加redis2的配置spring.redi...

rabbitmq多資料來源

核心依賴 com.mytaxi.spring.multirabbit spring multirabbit lib 2.2.0 核心方法 繫結至指定資料來源 resourceholder.bind connectionfactory,source 解除繫結,使用預設資料來源 resourcehold...

spring 多資料來源

之前嘗試的乙個多資料來源切換的功能測試可以實現了,下面進行一下簡單的筆記 testservice 方法通過以下方式進行主動切換 dynamicdatasource 類 package com.utils import org.springframework.jdbc.datasource.looku...