1 由於專案需要,需要將不同**的資料存入不同的資料庫,所以需要根據入參的資訊動態切換資料來源
專案core層採用了spring+mybitas 方式進行架構
1 在spring的配置中定義兩個資料來源
2建立乙個新的類 multidatasource
public class multidatasource extends abstractroutingdatasource
@override
protected object determinecurrentlookupkey() 這個類需要繼承 abstractroutingdatasource
並且重寫 determinecurrentlookupkey方法
3 在spring 的配置檔案中新增配置
4 將配置的datasource 新增到sessionfactory 中
5 將sessionfactory 注入到sqlsession中
6 動態切換資料來源決定採用spring-aop 新增切點 去進行動態切換
6.1 新建資料切換類
public class databaseaop else
}
}
6.2 定義資料切換類
6.3定義切點
proxy-target-class="true" 引數是為了設定 攔截 器可以定義為class
注釋 1 abstractroutingdatasource 類中 存在跟資料庫資源建立連線的方法
public connection getconnection()
在該方法中 呼叫了 protected datasource determinetargetdatasource() 方法
在該方法中 會呼叫 determinecurrentlookupkey 獲取database 的key 並根據 key 從對應的資料來源中獲取對應的資料庫連線資源 如資料庫連線池資源
類 multidatasource 重寫了 determinecurrentlookupkey 方法
@override
protected object determinecurrentlookupkey()
在需要切換資料來源之前 呼叫全域性方法 multidatasource.setdatasourcekey(string key) 去切換資料來源
2
配置中的 標籤中的 key 為動態切換資料來源的key
defaulttargetdatasource 引數 指的是預設的資料來源
快速排序演算法實現(遞迴實現 棧實現)
基本思想 選擇乙個基準元素,比如選擇最後乙個元素,通過一趟掃瞄,將待排序列分成兩部分,一部分比基準元素小,一部分大於等於基準元素,此時基準元素在其排好序後的正確位置,又稱為軸位置,此位置的元素確定後不再參與排序,然後再用同樣的方法遞迴地排序劃分的兩部分。分析 快速排序是不穩定的排序。快速排序的時間複...
介面實現與配置實現
在實現系統功能的時候,通常會首先定義好功能的介面,在系統功能不斷被實現的過程中,慢慢的發現有些介面的實現很類似,這個時候通常會開始做一次抽象,形 成乙個共同的部分,慢慢的系統形成了乙個抽象的層次,而為了通用,通常是通過定義介面,形成乙個抽象類,抽象類中暴露出一些抽象方法供外部擴充套件實 現,逐步的積...
js分頁實現,前端實現。
主要是借鑑了網上乙個例子,自己重新加了樣式,新增了跳轉,修改了一些小地方,用於和大家一起分享,前端分頁的技巧,的資料是我已經寫好了,其實大家也可以前端渲染 然後再分頁,都是可以的。其實分頁最關鍵是這兩句 var startrow currentpage 1 pagesize 1 currentpag...