01_MyBatis EHCache整合及所需jar包,ehcache.xml配置檔案引數配置及mapper中的引數配置
1 與mybatis整合時需要的jar
ehcache-core-2.6.5.jar
mybatis-ehcache-1.0.2.jar
Mybatis、日誌、EHCache所需要的jar包如下:
2 EHCache與mybatis整合
EHCache是一種廣泛使用java分散式快取通用快取,JavaEE中的一個輕量級的容器。
EHCache整合是基於ehcache-core,沒有任何其它第三方應用程式。
想使用EHCache到她們的應用程式的使用者,必須下載EHCache的zip bundle,解壓它新增這些jars到classpath路徑下。使用Apache Maven的使用者只需要在pom.xml檔案中新增如下內容:
<dependencies>
...
<dependency>
<groupId>org.mybatis.caches</groupId>
<artifactId>mybatis-ehcache</artifactId>
<version>1.0.2</version>
</dependency>
...
</dependencies>
接著需要在mapper的xml檔案中配置如下內容:
<mapper namespace="org.acme.FooMapper">
<cache type="org.mybatis.caches.ehcache.EhcacheCache"/>...
</mapper>
你也可以提供可以再執行動態變更的如下引數:
<mapper namespace="org.acme.FooMapper">
<cache type="org.mybatis.caches.ehcache.EhcacheCache"/>
<property name="timeToIdleSeconds" value="3600"/><!--1hour-->
<property name="timeToLiveSeconds" value="3600"/><!--1hour-->
<property name="maxEntriesLocalHeap" value="1000"/>
<property name="maxEntriesLocalDisk" value="10000000"/>
<property name="memoryStoreEvictionPolicy" value="LRU"/>
</cache>
...
</mapper>
如果使用者需要日誌快取操作,可以插入Cachelogging version:
<mapper namespace="org.acme.FooMapper">
<cache type="org.mybatis.caches.ehcache.LoggingEhcache"/>
...
</mapper>
需要通xml配置檔案配置EHCache的使用者,必須要在classpath路徑下放置/ehcache.xml資源。
若/ehcache.xml資源沒有發現或者在載入/ehcache.xml的時候發生錯誤,將會使用預設的配置。
3 /ehcache.xml配置檔案引數配置
<?xml version="1.0" encoding="UTF-8"?>
<ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="ehcache.xsd"
updateCheck="true" monitoring="autodetect" dynamicConfig="true">
<diskStore path="java.io.tmpdir" />
<!--
name:Cache的唯一標識
maxElementsInMemory:記憶體中最大快取物件數
maxElementsOnDisk:磁碟中最大快取物件數,若是0表示無窮大
eternal:Element是否永久有效,一但設定了,timeout將不起作用
overflowToDisk:配置此屬性,當記憶體中Element數量達到maxElementsInMemory時,Ehcache將會Element寫到磁碟中
timeToIdleSeconds:設定Element在失效前的允許閒置時間。僅當element不是永久有效時使用,可選屬性,預設值是0,也就是可閒置時間無窮大
timeToLiveSeconds:設定Element在失效前允許存活時間。最大時間介於建立時間
和失效時間之間。僅當element不是永久有效時使用,預設是0.,也就是element存活時間無窮大
diskPersistent:是否快取虛擬機器重啟期資料
diskExpiryThreadIntervalSeconds:磁碟失效執行緒執行時間間隔,預設是120秒
diskSpoolBufferSizeMB:這個引數設定DiskStore(磁碟快取)的快取區大小。預設是30MB。每個Cache都應該有自己的一個緩衝區
memoryStoreEvictionPolicy:當達到maxElementsInMemory限制時,Ehcache將會根據指定的策略去清理記憶體。預設策略是LRU(最近最少使用)。你可以設定為FIFO(先進先出)或是LFU(較少使用)
-->
<defaultCache maxElementsInMemory="10000"
eternal="false"
timeToIdleSeconds="120"
timeToLiveSeconds="120"
overflowToDisk="true"
maxElementsOnDisk="10000000"
diskPersistent="false"
diskExpiryThreadIntervalSeconds="120"
memoryStoreEvictionPolicy="LRU" />
</ehcache>
sqlMapConfig.xml中的<settings>設定如下:
<!-- 開啟延遲載入 -->
<settings>
<!-- 全域性的延遲載入的開關必須要開啟 -->
<setting name="lazyLoadingEnabled" value="true"/>
<!-- 積極載入設定成false -->
<setting name="aggressiveLazyLoading" value="false"/>
<!-- 開啟二級快取, 快取中只要是需要配置的針對的都是二級快取 -->
<setting name="cacheEnabled" value="true"/>
</settings>
mapper檔案中的內容如下:
相關文章
- redis配置檔案中各引數詳解Redis
- Nginx 配置檔案引數詳解Nginx
- 常用的jvm配置引數 :永久區引數配置JVM
- 引數配置
- MySQL的配置檔案的引數設定MySql
- JavaWeb引數配置JavaWeb
- MongoDB啟動檔案配置引數詳解MongoDB
- Linux網路卡配置檔案 引數詳解Linux
- Kafka - 配置檔案引數最佳化方案Kafka
- Nginx 內容快取及常見引數配置Nginx快取
- 如何自定義 CI/CD 配置檔案中的輸入引數?
- Spingboot 讀取 yml 配置檔案裡的引數值boot
- Ceph配置引數分析
- mybatis中mapper.xml檔案引數問題MyBatisAPPXML
- Spark的相關引數配置Spark
- Android Jenkins引數化配置AndroidJenkins
- Laravel 配置郵箱引數Laravel
- docker 配置引數參考Docker
- APM Java agent 引數配置Java
- vscode配置除錯引數VSCode除錯
- Hystrix 配置引數全解析
- nginx 常見引數以及重定向引數配置Nginx
- Django裡URL配置中name引數的作用Django
- DG配置過程中的引數解釋
- 【轉載】MAVEN環境變數配置及安裝及專案配置Maven變數
- Nginx的gzip配置引數說明Nginx
- Flink常用的配置引數總結
- Prometheus hashmod 配置引數詳解Prometheus
- Linphone 配置引數(噪音除錯)除錯
- JVM記憶體引數配置JVM記憶體
- postgresql配置引數最佳化SQL
- 如何在MonogoDB中檢視配置的引數值MonoGo
- Kubernetes 中的應用引數配置案例詳析
- OceanBase學習之路51|常用的系統配置引數及系統變數有哪些?變數
- vivo X27引數配置與圖賞:vivo X27引數配置怎麼樣 ?
- 由引數檔案配置表對映重複引發的OGG-01154 ORA-00001
- MySQL常見的配置引數概覽MySql
- MySQL日誌引數配置簡介MySql
- oppo reno4 se引數配置