MyBatis(第三方緩存整合原理&ehcache適配包下載)


EhCache是一個純java的進程內緩存框架,具有快速、精干等特點,是Hibernate中默認的CacheProvider。

 

  MyBatis是一個與數據庫交互的框架,不是專業做緩存的,但是留了接口Cache;我們可以自定義緩存或者使用其他緩存。

第三方緩存整合:jar包可以在https://github.com/mybatis/這個網址上下載

  1)、導入第三方緩存jar包即可;

    ehcache-core-2.6.8.jar:ehcache的核心包。

    slf4j-api-1.6.1.jar:日志有關的包,slf4j的核心接口包。

    slf4j-log4j12-1.6.2.jar:日志有關的包,slf4j調用log4j的實現包。

  2)、導入與第三方緩存整合的適配包;官方有;

    mybatis-ehcache-1.0.3.jar

  3)、編寫ehcache.xml配置文件,放在類路徑下。

<?xml version="1.0" encoding="UTF-8"?>
<ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:noNamespaceSchemaLocation="../config/ehcache.xsd">
 <!-- 磁盤保存路徑 -->
 <diskStore path="D:\44\ehcache" />
 
 <defaultCache 
   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便會采用<defalutCache/>指定的的管理策略
 
以下屬性是必須的:
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(先進先出)
 -->

  4)、在mapper.xml中使用自定義緩存

<cache type="org.mybatis.caches.ehcache.EhcacheCache"></cache>

若想在命名空間中共享相同的緩存配置和實例。可以使用cache-ref元素來引用另一個緩存。

    <!--引用緩存:namespace指定和哪個名稱空間下的緩存一樣-->
    <cache-ref namespace="com.atguigu.mybatis.dao.EmployeeMapper"></cache-ref>

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM