1. 程式人生 > 程式設計 >在Mybatis中使用自定義快取ehcache的方法

在Mybatis中使用自定義快取ehcache的方法

自定義快取 - ehcache

Ehcache是一種廣泛使用的開源Java分散式快取。主要面向通用快取,Java EE和輕量級容器

1.導包

<!-- https://mvnrepository.com/artifact/org.mybatis.caches/mybatis-ehcache -->
<dependency>
 <groupId>org.mybatis.caches</groupId>
 <artifactId>mybatis-ehcache</artifactId>
 <version>1.1.0</version>
</dependency>

2.在 Mapper.xml 中指定使用 ehcache 快取實現

<!--在當前 Mapper.xml 中使用二級快取-->
<cache type="org.mybatis.caches.ehcache.EhcacheCache"/>

3.在resource中定義配置檔案 ehcache.xml

<?xml version="1.0" encoding="UTF-8" ?>
<ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:noNamespaceSchemaLocation="http://ehcache.org/ehcache.xsd" updateCheck="false">

 <!--
 diskStore: 快取路徑,ehcache分為記憶體和磁碟兩級,此屬性定義磁碟的快取位置
 引數:
 user.home - 使用者主目錄
 user.dir - 使用者當前工作目錄
 java.io.tmpdir - 預設臨時檔案路徑
 -->

 <!--當二級快取的物件 超過記憶體限制時(快取物件的個數>maxElementsInMemory),存放入的硬碟檔案 -->
 <diskStore path="./tempdir/Tmp_Ehcache"/>

 <!--default 預設緩衝策略,當ehcache找不到定義的快取時,則使用這個快取策略,這個只能定義一個-->
 <defaultCache
  eternal="false"
  maxElementsInMemory="10000"
  overflowToDisk="false"
  diskPersistent="false"
  timeToIdleSeconds="1800"
  timeToLiveSeconds="259200"
  memoryStoreEvictionPolicy="LRU"/>
 
 <cache
  name="cloud_user"
  eternal="false"
  maxElementsInMemory="5000"
  overflowToDisk="false"
  diskPersistent="false"
  timeToIdleSeconds="1800"
  timeToLiveSeconds="1800"
  memoryStoreEvictionPolicy="LRU"/>

 <!--
  maxElementsInMemory:設定 在記憶體中快取 物件的個數
  maxElementsOnDisk:設定 在硬碟中快取 物件的個數
  eternal:設定快取是否 永遠不過期
  overflowToDisk:當系統宕機的時候是否儲存到磁碟上
  maxElementsInMemory的時候,是否轉移到硬碟中
  timeToIdleSeconds:當2次訪問 超過該值的時候,將快取物件失效
  timeToLiveSeconds:一個快取物件 最多存放的時間(生命週期)
  diskExpiryThreadIntervalSeconds:設定每隔多長時間,通過一個執行緒來清理硬碟中的快取
  clearOnFlush: 記憶體數量最大時是否清除
  memoryStoreEvictionPolicy:當超過快取物件的最大值時,處理的策略;LRU (最少使用),FIFO (先進先出),LFU (最少訪問次數)
  -->
</ehcache>

到此這篇關於在Mybatis中使用自定義快取ehcache的方法的文章就介紹到這了,更多相關Mybatis自定義快取ehcache內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!