關于Spring3+Mybatis3整合時多數(shù)據(jù)源動態(tài)切換的問題-創(chuàng)新互聯(lián)

以前的項目經(jīng)歷中,基本上都是spring + hibernate + Spring JDBC這種組合用的多。至于MyBatis,也就這個項目才開始試用,閑話不多說,進入正題。

站在用戶的角度思考問題,與客戶深入溝通,找到虞城網(wǎng)站設計與虞城網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗,讓設計與互聯(lián)網(wǎng)技術結合,創(chuàng)造個性化、用戶體驗好的作品,建站類型包括:成都做網(wǎng)站、成都網(wǎng)站設計、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣、主機域名雅安服務器托管、企業(yè)郵箱。業(yè)務覆蓋虞城地區(qū)。

以前的這種框架組合中,動態(tài)數(shù)據(jù)源切換可謂已經(jīng)非常成熟了,網(wǎng)上也有非常多的博客介紹,都是繼承AbstractRoutingDataSource,重寫determineCurrentLookupKey()方法。具體做法就不在此廢話了。

所以當項目中碰到這個問題,我?guī)缀跸攵紱]有想,就采用了這種做法,但是一測試,一點反應都沒有。當時覺得不可能,于是斷點,加log調試,發(fā)現(xiàn)determineCurrentLookupKey()根本沒有調用。

為什么列? 這不可能啊。靜下心來,仔細想想,才想到一個關鍵的問題: Mybatis整合Spring,而不是Spring整合的Mybatis! 直覺告訴我,問題就出在這里。

于是花時間去研究一下mybatis-spring.jar 這個包,發(fā)現(xiàn)有SqlSession這東西,很本能的就注意到了這一塊,然后大致看一下他的一些實現(xiàn)類。于是就發(fā)現(xiàn)了他的實現(xiàn)類里面有一個內(nèi)部類SqlSessionInterceptor(研究過程就不多說了,畢竟是個痛苦的過程)

好吧,這個類的作用列,就是產(chǎn)生sessionProxy。關鍵代碼如下

final SqlSession sqlSession = getSqlSession( 
 SqlSessionTemplate.this.sqlSessionFactory, 
 SqlSessionTemplate.this.executorType, 
 SqlSessionTemplate.this.exceptionTranslator); 

新聞名稱:關于Spring3+Mybatis3整合時多數(shù)據(jù)源動態(tài)切換的問題-創(chuàng)新互聯(lián)
網(wǎng)站網(wǎng)址:http://www.muchs.cn/article26/dpjpjg.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供標簽優(yōu)化、外貿(mào)網(wǎng)站建設網(wǎng)站改版、網(wǎng)站設計公司網(wǎng)站策劃、品牌網(wǎng)站制作

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站優(yōu)化排名