ehcache作為Mybatis二級快取的問題

2021-08-03 20:39:02 字數 1361 閱讀 3278

在專案中曾經出現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...