我們最早做新項目的時候一直想做數據庫的讀寫分離與主從同步,由於一些原因一直沒有去做這個事情,這次我們需要配置雙數據源的起因是因為我們做了一個新項目用了另一個數據庫,需要把這個數據庫的數據顯示到原來的后來上。讀寫分離本質其實就是寫入主庫,讀從庫,就是多數據源的切換,有很多中間件能幫我們完成也有自己實現,大部分做法都是通過aop實現的,再進行service操作的前就把數據源切換了。實現思路都大致相同,具體使用就是仁者見仁智者見智了。
第一步:設置數據源,在原來的配置文件加上新的數據源
第二步:修改mybatis配置sqlSessionFactory
第三步:修改事務transactionManager
第四步:配置dateSource引用
第五步:定義一個數據源切換類
最后一步使用:根據現有業務決定定義注解方式標注哪些類或方法需要使用新數據源,通過攔截器方式攔截所有請求
定義注解
配置連接器
創建攔截器實現數據源切換(省略postHandle方法)
然后再需要使用的類或者方法加上@TestDataSource("testDataSource")就可以切換數據源了。使用有很多方式,文章介紹的只是我現在業務用到的,最終都是使用切換類來切換數據庫dateSource。前端時間一直很忙,沒有閑下來去學一些東西,忙新項目的過程中也遇到一些我沒見到過的問題,我會寫下來分享出來。這篇文章只介紹了springmvc中使用,在springboot中也時一樣的,也可以通過注解的方式來實現。