天天看點

讀寫分離(資料源動态切換)

資料源在spring加載啟動完成之後,需要根據不同的業務場景做動态的切換。

解決思路

1、借助spring提供的抽象類AbstractRoutingDataSource,通過繼承抽象類,并覆寫determineCurrentLookupKey方法。

2、增加Aspect環繞服務,在before裡面設定好資料源本地線程變量、after之後清理掉資料源本地線程變量。

3、每次擷取的時候,若資料源本地線程變量為空,則預設走主dataSource。

注意事項

1、Aspect和繼承的AbstractRoutingDataSource類之間執行順序的問題通過設定order來控制。

2、測試動态資料源切換通過啟動系統來測試,不是單元測試,單元測試有的時候會失效。