springboot多數據源配置

  今日在工做中遇到這樣一個需求,咱們將另一個項目A的數據庫中的數據同步過來,而且當數據庫中的數據有更新時也要實時更新,第一時間想到了寫一個定時器,經過多數據源從項目A的數據庫中拉取數據,而後更新。項目使用的springboot+mybatis。關於多數據源的配置網上的教程有不少,這裏就很少說了,貼上我參考的兩個連接。spring

第一種,經過aop動態切換數據源數據庫

https://blog.csdn.net/xiaosheng_papa/article/details/80218006springboot

第二種,經過指定不一樣的dao層來操做不一樣的數據庫mybatis

https://blog.csdn.net/u012343297/article/details/78835185.net

  這兩種方法我都親測可行的。開始我採用的是第一種方法,由於第一種方法在我看來更優雅也更靈活。可是實際使用的時候遇到了一個問題,那就是我在定時器裏面引用了一個service方法,這個service方法裏面會同時操做兩個數據庫。當我在這個service方法中加上@Transactional註解後發現多數據源失效了,沒法操做項目A的數據庫。網上也沒有搜到比較好的教程解決這個問題。而後我就採用了第二種方法,事務可以起做用,並且也可以同時操做多個數據庫。算是成功解決了問題。blog

  至於第一種方法添加事務致使切換數據源失敗的問題,網上教程都有說是能夠解決的。目前項目進度比較緊,只能以完成任務爲首要目的,等有時間閒下來以後會去試着解決這個問題。教程

相關文章
相關標籤/搜索