在專案中曾經出現mybatis-ehcache做二級快取導致資料髒讀的問題。在讀場景居多的情況下,這種方式可以提高了快取命中率。但是在實際應用場景下,開發規範不可控,坑可能更多些。。。
com.googlecode.ehcache-spring-annotationsgroupid>
ehcache-spring-annotationsartifactid>
1.1.2version>
jartype>
compilescope>
dependency>
net.sf.ehcachegroupid>
ehcache-coreartifactid>
2.1.0version>
dependency>
org.mybatis.cachesgroupid>
mybatis-ehcacheartifactid>
1.0.3version>
dependency>
type="org.mybatis.caches.ehcache.ehcachecache"/>
mybatis本身只支援一級快取,提供二級快取的接入能力。當有更新產生時,會清空一二級快取,借個網上的圖說明下快取架構
configuration.addcache(cache)是在org.apache.ibatis.session.configuration中新增cache的
public
void addcache(cache
cache)
此處的cacheid即為org.mybatis.caches.ehcache.ehcachecache中的id值。
在org.apache.ibatis.executor.cachingexecutor可以看到mybatis的清除cache執行方法。
private
cache
cache
= ms.getcache();
if (cache
!=null
&& ms.isflushcacherequired())
}
綜上,建議還是在業務邏輯層加入快取,而盡量謹慎選擇mybatis的二級快取方式。 MyBatis之使用 ehcache作為快取
前面的就把所有的 放上來了,沒有什麼是特別坑的,寫一下今天遇到乙個花時間比較久的,不使用mybatis自帶的快取,而是使用ehcache。書寫xml檔案和xsd檔案,放在src目錄下。maxelementsinmemory 10000 eternal true timetoidleseconds 1...
ehcache作為分布式快取的研究
ehcache支援兩種拓撲結構,一種是distributed caching,另一種是replicated caching distributed caching 一方面 l1是客戶端結點,基於terracotta server array的ehcache集群是由l1和l2共同組成的,它們一起共享應...
typeHandler設定和mybatis版本問題
使用hashicorp遇到幾個問題 1 用了生產模式,然後丟了token和解封金鑰,不能重新解封,刪除vault和配置路徑後,重新安裝也沒有解決問題,只能先用dev模式繼續研究了,後續看能不能找到其他辦法 2 springboot mybatis整合時,遇到問題,generatorconfig.xm...