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檔案中的內容如下:
相關文章
- Elasticsearch常用配置及效能引數Elasticsearch
- SSH框架整合配置所需JAR包(SSH整合)框架JAR
- 靜態引數檔案配置
- redis配置檔案中各引數詳解Redis
- 常用的jvm配置引數 :永久區引數配置JVM
- Nginx 配置檔案引數詳解Nginx
- Redis配置檔案引數說明Redis
- redis配置檔案引數詳解Redis
- MySQL的配置檔案的引數設定MySql
- oracle11g引數檔案配置Oracle
- compose配置檔案引數詳解
- 部分Oracle 配置檔案引數含義Oracle
- LINUX 網路卡配置檔案引數Linux
- jvm引數配置JVM
- oracle引數配置Oracle
- JavaWeb引數配置JavaWeb
- MongoDB啟動檔案配置引數詳解MongoDB
- Kafka - 配置檔案引數最佳化方案Kafka
- Nginx 內容快取及常見引數配置Nginx快取
- Kafka 配置引數彙總及相關說明Kafka
- 如何自定義 CI/CD 配置檔案中的輸入引數?
- Ceph配置引數分析
- Oracle rman 配置引數Oracle
- ORACLE 配置event引數Oracle
- mosquitto 引數配置UI
- 配置網路引數
- notes.ini檔案的配置引數詳解
- Linux網路卡配置檔案 引數詳解Linux
- MySQL配置檔案mysql.ini引數詳解MySql
- php-fpm啟動引數及重要配置詳解PHP
- Linux中環境變數檔案及配置Linux變數
- Mysql重要配置引數的整理MySql
- Spark的相關引數配置Spark
- notes.ini檔案的配置引數詳解(轉)
- Hystrix 配置引數全解析
- Laravel 配置郵箱引數Laravel
- APM Java agent 引數配置Java
- Elasticsearch 引數配置說明Elasticsearch