Mybatis引入第三方快取庫ehcache

2021-08-27 11:06:28 字數 2543 閱讀 4895

mybatis知道自己快取做的不好 就暴露介面出來給別人做

cache介面實現兩個方法

putobject

getobject

所以我們可以引入第三方快取庫

這裡我就介紹下ehcache

git:
看看ehcache的類

ehcachecache extends abstractehcachecache

public

abstract

class

abstractehcachecache

implements

cache

可以看出 是繼承了 mybatis暴露的介面。

具體的配置 可以檢視這個文件。

.org/ehcache-cache/

第一步 匯入需要的四個jar包:

匯入第三方快取包:

ehcache-core-2.6

.8.jar

slf4j-api-1.6

.1.jar

slf4j-log4j12-1.6

.2.jar

匯入與第三方快取整合的適配包;官方有(

mybatis-ehcache-1.0

.3.jar

<

cache

type

="org.mybatis.caches.ehcache.ehcachecache"

>>

還要在conf下建立乙個ehcache.xml: 注意 如果沒有 則採用預設值

<?xml version="1.0" encoding="utf-8"?>

xmlns:xsi=""

xsi:nonamespaceschemalocation="../config/ehcache.xsd">

path="d:\44\ehcache" />

maxelementsinmemory="10000"

maxelementsondisk="10000000"

eternal="false"

overflowtodisk="true"

timetoidleseconds="120"

timetoliveseconds="120"

diskexpirythreadintervalseconds="120"

memorystoreevictionpolicy="lru">

defaultcache>

ehcache>

屬性說明:

l diskstore:指定資料在磁碟中的儲存位置。

l defaultcache:當借助cachemanager.add("democache")建立cache時,ehcache便會採用指定的的管理策略

以下屬性是必須的:

l maxelementsinmemory - 在記憶體中快取的element的最大數目

l maxelementsondisk - 在磁碟上快取的element的最大數目,若是0表示無窮大

l eternal - 設定快取的elements是否永遠不過期。如果為true,則快取的資料始終有效,如果為false那麼還要根據timetoidleseconds,timetoliveseconds判斷

l overflowtodisk - 設定當記憶體快取溢位的時候是否將過期的element快取到磁碟上

以下屬性是可選的:

l timetoidleseconds - 當快取在ehcache中的資料前後兩次訪問的時間超過timetoidleseconds的屬性取值時,這些資料便會刪除,預設值是0,也就是可閒置時間無窮大

l timetoliveseconds - 快取element的有效生命期,預設是0.,也就是element存活時間無窮大

diskspoolbuffersizemb 這個引數設定diskstore(磁碟快取)的快取區大小.預設是30mb.每個cache都應該有自己的乙個緩衝區.

l diskpersistent - 在vm重啟的時候是否啟用磁碟儲存ehcache中的資料,預設是false。

l diskexpirythreadintervalseconds - 磁碟快取的清理執行緒執行間隔,預設是120秒。每個120s,相應的執行緒會進行一次ehcache中資料的清理工作

l memorystoreevictionpolicy - 當記憶體快取達到最大,有新的element加入的時候, 移除快取中element的策略。預設是lru(最近最少使用),可選的有lfu(最不常使用)和fifo(先進先出)

如果其他空間也想用這個快取機制的話 不用重新寫

只要引用那個使用了快取的空間即可:

<

cache

-ref namespace=

/>

MyBatis整合第三方快取

mybatis快取做的並不專業,用的是map,但是它給了我們乙個介面cache,我們通過實現這個介面,可以自定義快取。本例子用的為ehcache hibernate用的也是ehcache快取技術。接下來我們需要寫乙個cache的實現。但是mybatis已經幫我們做好了,在mybatis官網上有myb...

引入三方庫 Xcode中引入第三方庫

我在網上也看過了很多的資料,關於怎麼引用第三方庫,但是看得我也是眼花繚亂。有的是使用第三方管理程式cocoapods,看起來好像很好用的樣子,本來還期望它能像nutget一樣方便,但是有點失望了。操作基本都是使用命令列,關鍵是我按照別人部落格上說的操作了一波,結果不行。操作不僅不方便還會有一堆的問題...

工程中引入第三方庫

在ros包中建立3rdparty並使用 catkin space cmakelists.txt src資料夾 cmakelists.txt packages.xml node1資料夾 include資料夾 src資料夾 3rdparty資料夾 inlude資料夾 opencv opencv open...