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...