多數據源,配置完事務之后就不能正常切換數據源


我也遇到了這個問題,仔細debug了一下,結論如下:
1. AOP可以觸發數據源字符串的切換,這個沒問題
2. 數據源真正切換的關鍵是 AbstractRoutingDataSource 的 determineCurrentLookupKey() 被調用,此方法是在open connection時觸發
3. 事務是在connection層面管理的,啟用事務后,一個事務內部的connection是復用的,所以就算AOP切了數據源字符串,但是數據源並不會被真正修改

綜上所述:
如果要使用事務,還是別用determineCurrentLookupKey()這種方法切數據源了,得配置多個才行


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM