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...