public class datasourceswitch
invocationhandler invocationhandler = proxy.getinvocationhandler(datasource);
field value = invocationhandler.getclass().getdeclaredfield("membervalues");
value.setaccessible(true);
mapmembervalues = (map) value.get(invocationhandler);
string val = (string) membervalues.get("value");
system.out.println("改變前"+val);
val = data;
membervalues.put("value",val);
system.out.println("改變後"+datasource);}}
博主在這裡報錯了好幾次主要有以下幾個原因:1:你的值傳錯了,2:多了空格 自己好好把握
datasourceswitch.change("druid");
裡面是自己要切換的value的值,我測試過了是可以切換的
Spring MyBatis多資料來源的切換
這兩個類的類名可以根據自己的編碼習慣命名,我的命名及實現 如下 1 datasourcecontextholder 用於進行資料來源的獲取 設定及還原 package com.cpms.trasen.common.tk import org.slf4j.logger import org.slf4j...
SpringBoot中的雙資料來源切換
在我們的專案中涉及到oracle,mysql資料庫切換 資料放在了oracle上,而配置和許可權管理放在了mysql上 所以經常要在兩者之間切換。資料來源切換總共有三種方法 1 在任何地方切換。例如我們的專案 dbcontext.changedb dbname.ims.getkey 切換oracle...
mybatisPlus的切換資料來源失效問題。
使用mybatisplu的動態切換資料來源時,遇到無法切換的問題 原因是具體操作的服務呼叫的是非同步執行緒 mp的切換資料來源資訊是放在threadlocal中去儲存的,如果切換了執行緒,那麼就取不到資料來源資訊的內容,導致無法切換資料來源的問題 對於這種情況,如果非同步有存在的必要性 那麼可以將這...