uniapp 預覽PDF - web-view元件用法
簡介
EhCache 是一個純Java的程序內快取框架,具有快速、精幹等特點,是Hibernate中預設CacheProvider。Ehcache是一種廣泛使用的開源Java分散式快取。主要面向通用快取,Java EE和輕量級容器。它具有記憶體和磁碟儲存,快取載入器,快取擴充套件,快取異常處理程式,一個gzip快取servlet過濾器,支援REST和SOAP api等特點。
主要特性
- 快速
- 簡單
- 多種快取策略
- 快取資料有兩級:記憶體和磁碟,因此無需擔心容量問題
- 快取資料會在虛擬機器重啟的過程中寫入磁碟
- 可以通過RMI、可插入API等方式進行分散式快取
- 具有快取和快取管理器的偵聽介面
- 支援多快取管理器例項,以及一個例項的多個快取區域
- 提供Hibernate的快取實現
整合
可以單獨使用,一般在第三方庫中被用到的比較多(如mybatis、shiro等)ehcache 對分散式支援不夠好,多個節點不能同步,通常和redis一塊使用
ehcache 和 redis 比較
ehcache直接在jvm虛擬機器中快取,速度快,效率高;但是快取共享麻煩,叢集分散式應用不方便。
redis是通過socket訪問到快取服務,效率比ecache低,比資料庫要快很多,
處理叢集和分散式快取方便,有成熟的方案。如果是單個應用或者對快取訪問要求很高的應用,用ehcache。如果是大型系統,存在快取共享、分散式部署、快取內容很大的,建議用redis。
使用
引入依賴
<dependency>
<groupId>net.sf.ehcache</groupId>
<artifactId>ehcache</artifactId>
<version>2.10.2</version>
</dependency>
在src/main/resources/建立一個配置檔案 ehcache.xml
預設情況下Ehcache會自動載入classpath根目錄下名為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"> <!-- 磁碟快取位置 -->
<diskStore path="java.io.tmpdir/ehcache"/>
<!-- 預設快取 -->
<defaultCache
maxEntriesLocalHeap="10000"
eternal="false"
timeToIdleSeconds="120"
timeToLiveSeconds="120"
maxEntriesLocalDisk="10000000"
diskExpiryThreadIntervalSeconds="120"
memoryStoreEvictionPolicy="LRU">
<persistence strategy="localTempSwap"/>
</defaultCache>
<!-- helloworld快取 -->
<cache name="HelloWorldCache"
maxElementsInMemory="1000"
eternal="false"
timeToIdleSeconds="5"
timeToLiveSeconds="5"
overflowToDisk="false"
memoryStoreEvictionPolicy="LRU"/>
</ehcache>
ehcache.xml 檔案配置詳解
diskStore |
為快取路徑,ehcache分為記憶體和磁碟兩級,此屬性定義磁碟的快取位置。
|
defaultCache |
預設快取策略,當ehcache找不到定義的快取時,則使用這個快取策略。只能定義一個。 |
name |
快取名稱 |
maxElementsInMemory |
快取最大數目 |
maxElementsOnDisk |
硬碟最大快取個數 |
eternal |
物件是否永久有效,一但設定了,timeout將不起作用。 |
overflowToDisk |
是否儲存到磁碟,當系統當機時 |
timeToIdleSeconds |
設定物件在失效前的允許閒置時間(單位:秒)。僅當eternal=false物件不是永久有效時使用,可選屬性,預設值是0,也就是可閒置時間無窮大。 |
timeToLiveSeconds |
設定物件在失效前允許存活時間(單位:秒)。最大時間介於建立時間和失效時間之間。僅當eternal=false物件不是永久有效時使用,預設是0.,也就是物件存活時間無窮大。 |
diskPersistent |
是否快取虛擬機器重啟期資料 |
DiskStore |
(磁碟快取)的快取區大小。預設是30MB。每個Cache都應該有自己的一個緩衝區。 |
diskExpiryThreadIntervalSeconds |
磁碟失效執行緒執行時間間隔,預設是120秒 |
memoryStoreEvictionPolicy |
當達到maxElementsInMemory限制時,Ehcache將會根據指定的策略去清理記憶體。預設策略是LRU(最近最少使用)。你可以設定為FIFO(先進先出)或是LFU(較少使用)。 |
clearOnFlush |
記憶體數量最大時是否清除 |
memoryStoreEvictionPolicy |
可選策略有:LRU(最近最少使用,預設策略)、FIFO(先進先出)、LFU(最少訪問次數)。 FIFO,first in first out,先進先出。 |
Springboot整合ehcache
1、 建立springboot專案
2、 引入依賴
<!--開啟 cache 快取-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-cache</artifactId>
</dependency>
<!-- ehcache 快取 -->
<dependency>
<groupId>net.sf.ehcache</groupId>
<artifactId>ehcache</artifactId>
</dependency>
3、 引入配置檔案 ehcache.xml
在resource資料夾下建立檔案ehcache.xml,並進行配置
如果在其他資料夾下的話則在properties中指定ehcache.xm檔案的位置
spring.cache.ehcache.config=
# ehcache配置檔案地址
4、 Sevice層註解
@Cacheable : Spring在每次執行前都會檢查Cache中是否存在相同key的快取元素,如果存在就不再執行該方法,而是直接從快取中獲取結果進行返回,否則才會執行並將返回結果存入指定的快取中。
@CacheEvict : 清除快取。
@CachePut : @CachePut也可以宣告一個方法支援快取功能。使用@CachePut標註的方法在執行前不會去檢查快取中是否存在之前執行過的結果,而是每次都會執行該方法,並將執行結果以鍵值對的形式存入指定的快取中。
這三個方法中都有兩個主要的屬性:value 指的是 ehcache.xml 中的快取策略空間;key 指的是快取的標識,同時可以用 # 來引用引數。
簡介
EhCache 是一個純Java的程序內快取框架,具有快速、精幹等特點,是Hibernate中預設CacheProvider。Ehcache是一種廣泛使用的開源Java分散式快取。主要面向通用快取,Java EE和輕量級容器。它具有記憶體和磁碟儲存,快取載入器,快取擴充套件,快取異常處理程式,一個gzip快取servlet過濾器,支援REST和SOAP api等特點。
主要特性
- 快速
- 簡單
- 多種快取策略
- 快取資料有兩級:記憶體和磁碟,因此無需擔心容量問題
- 快取資料會在虛擬機器重啟的過程中寫入磁碟
- 可以通過RMI、可插入API等方式進行分散式快取
- 具有快取和快取管理器的偵聽介面
- 支援多快取管理器例項,以及一個例項的多個快取區域
- 提供Hibernate的快取實現
整合
可以單獨使用,一般在第三方庫中被用到的比較多(如mybatis、shiro等)ehcache 對分散式支援不夠好,多個節點不能同步,通常和redis一塊使用
ehcache 和 redis 比較
ehcache直接在jvm虛擬機器中快取,速度快,效率高;但是快取共享麻煩,叢集分散式應用不方便。
redis是通過socket訪問到快取服務,效率比ecache低,比資料庫要快很多,
處理叢集和分散式快取方便,有成熟的方案。如果是單個應用或者對快取訪問要求很高的應用,用ehcache。如果是大型系統,存在快取共享、分散式部署、快取內容很大的,建議用redis。
使用
引入依賴
<dependency>
<groupId>net.sf.ehcache</groupId>
<artifactId>ehcache</artifactId>
<version>2.10.2</version>
</dependency>
在src/main/resources/建立一個配置檔案 ehcache.xml
預設情況下Ehcache會自動載入classpath根目錄下名為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"> <!-- 磁碟快取位置 -->
<diskStore path="java.io.tmpdir/ehcache"/>
<!-- 預設快取 -->
<defaultCache
maxEntriesLocalHeap="10000"
eternal="false"
timeToIdleSeconds="120"
timeToLiveSeconds="120"
maxEntriesLocalDisk="10000000"
diskExpiryThreadIntervalSeconds="120"
memoryStoreEvictionPolicy="LRU">
<persistence strategy="localTempSwap"/>
</defaultCache>
<!-- helloworld快取 -->
<cache name="HelloWorldCache"
maxElementsInMemory="1000"
eternal="false"
timeToIdleSeconds="5"
timeToLiveSeconds="5"
overflowToDisk="false"
memoryStoreEvictionPolicy="LRU"/>
</ehcache>
ehcache.xml 檔案配置詳解
diskStore |
為快取路徑,ehcache分為記憶體和磁碟兩級,此屬性定義磁碟的快取位置。
|
defaultCache |
預設快取策略,當ehcache找不到定義的快取時,則使用這個快取策略。只能定義一個。 |
name |
快取名稱 |
maxElementsInMemory |
快取最大數目 |
maxElementsOnDisk |
硬碟最大快取個數 |
eternal |
物件是否永久有效,一但設定了,timeout將不起作用。 |
overflowToDisk |
是否儲存到磁碟,當系統當機時 |
timeToIdleSeconds |
設定物件在失效前的允許閒置時間(單位:秒)。僅當eternal=false物件不是永久有效時使用,可選屬性,預設值是0,也就是可閒置時間無窮大。 |
timeToLiveSeconds |
設定物件在失效前允許存活時間(單位:秒)。最大時間介於建立時間和失效時間之間。僅當eternal=false物件不是永久有效時使用,預設是0.,也就是物件存活時間無窮大。 |
diskPersistent |
是否快取虛擬機器重啟期資料 |
DiskStore |
(磁碟快取)的快取區大小。預設是30MB。每個Cache都應該有自己的一個緩衝區。 |
diskExpiryThreadIntervalSeconds |
磁碟失效執行緒執行時間間隔,預設是120秒 |
memoryStoreEvictionPolicy |
當達到maxElementsInMemory限制時,Ehcache將會根據指定的策略去清理記憶體。預設策略是LRU(最近最少使用)。你可以設定為FIFO(先進先出)或是LFU(較少使用)。 |
clearOnFlush |
記憶體數量最大時是否清除 |
memoryStoreEvictionPolicy |
可選策略有:LRU(最近最少使用,預設策略)、FIFO(先進先出)、LFU(最少訪問次數)。 FIFO,first in first out,先進先出。 |
Springboot整合ehcache
1、 建立springboot專案
2、 引入依賴
<!--開啟 cache 快取-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-cache</artifactId>
</dependency>
<!-- ehcache 快取 -->
<dependency>
<groupId>net.sf.ehcache</groupId>
<artifactId>ehcache</artifactId>
</dependency>
3、 引入配置檔案 ehcache.xml
在resource資料夾下建立檔案ehcache.xml,並進行配置
如果在其他資料夾下的話則在properties中指定ehcache.xm檔案的位置
spring.cache.ehcache.config=
# ehcache配置檔案地址
4、 Sevice層註解
@Cacheable : Spring在每次執行前都會檢查Cache中是否存在相同key的快取元素,如果存在就不再執行該方法,而是直接從快取中獲取結果進行返回,否則才會執行並將返回結果存入指定的快取中。
@CacheEvict : 清除快取。
@CachePut : @CachePut也可以宣告一個方法支援快取功能。使用@CachePut標註的方法在執行前不會去檢查快取中是否存在之前執行過的結果,而是每次都會執行該方法,並將執行結果以鍵值對的形式存入指定的快取中。
這三個方法中都有兩個主要的屬性:value 指的是 ehcache.xml 中的快取策略空間;key 指的是快取的標識,同時可以用 # 來引用引數。
簡介
EhCache 是一個純Java的程序內快取框架,具有快速、精幹等特點,是Hibernate中預設CacheProvider。Ehcache是一種廣泛使用的開源Java分散式快取。主要面向通用快取,Java EE和輕量級容器。它具有記憶體和磁碟儲存,快取載入器,快取擴充套件,快取異常處理程式,一個gzip快取servlet過濾器,支援REST和SOAP api等特點。
主要特性
- 快速
- 簡單
- 多種快取策略
- 快取資料有兩級:記憶體和磁碟,因此無需擔心容量問題
- 快取資料會在虛擬機器重啟的過程中寫入磁碟
- 可以通過RMI、可插入API等方式進行分散式快取
- 具有快取和快取管理器的偵聽介面
- 支援多快取管理器例項,以及一個例項的多個快取區域
- 提供Hibernate的快取實現
整合
可以單獨使用,一般在第三方庫中被用到的比較多(如mybatis、shiro等)ehcache 對分散式支援不夠好,多個節點不能同步,通常和redis一塊使用
ehcache 和 redis 比較
ehcache直接在jvm虛擬機器中快取,速度快,效率高;但是快取共享麻煩,叢集分散式應用不方便。
redis是通過socket訪問到快取服務,效率比ecache低,比資料庫要快很多,
處理叢集和分散式快取方便,有成熟的方案。如果是單個應用或者對快取訪問要求很高的應用,用ehcache。如果是大型系統,存在快取共享、分散式部署、快取內容很大的,建議用redis。
使用
引入依賴
<dependency>
<groupId>net.sf.ehcache</groupId>
<artifactId>ehcache</artifactId>
<version>2.10.2</version>
</dependency>
在src/main/resources/建立一個配置檔案 ehcache.xml
預設情況下Ehcache會自動載入classpath根目錄下名為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"> <!-- 磁碟快取位置 -->
<diskStore path="java.io.tmpdir/ehcache"/>
<!-- 預設快取 -->
<defaultCache
maxEntriesLocalHeap="10000"
eternal="false"
timeToIdleSeconds="120"
timeToLiveSeconds="120"
maxEntriesLocalDisk="10000000"
diskExpiryThreadIntervalSeconds="120"
memoryStoreEvictionPolicy="LRU">
<persistence strategy="localTempSwap"/>
</defaultCache>
<!-- helloworld快取 -->
<cache name="HelloWorldCache"
maxElementsInMemory="1000"
eternal="false"
timeToIdleSeconds="5"
timeToLiveSeconds="5"
overflowToDisk="false"
memoryStoreEvictionPolicy="LRU"/>
</ehcache>
ehcache.xml 檔案配置詳解
diskStore |
為快取路徑,ehcache分為記憶體和磁碟兩級,此屬性定義磁碟的快取位置。
|
defaultCache |
預設快取策略,當ehcache找不到定義的快取時,則使用這個快取策略。只能定義一個。 |
name |
快取名稱 |
maxElementsInMemory |
快取最大數目 |
maxElementsOnDisk |
硬碟最大快取個數 |
eternal |
物件是否永久有效,一但設定了,timeout將不起作用。 |
overflowToDisk |
是否儲存到磁碟,當系統當機時 |
timeToIdleSeconds |
設定物件在失效前的允許閒置時間(單位:秒)。僅當eternal=false物件不是永久有效時使用,可選屬性,預設值是0,也就是可閒置時間無窮大。 |
timeToLiveSeconds |
設定物件在失效前允許存活時間(單位:秒)。最大時間介於建立時間和失效時間之間。僅當eternal=false物件不是永久有效時使用,預設是0.,也就是物件存活時間無窮大。 |
diskPersistent |
是否快取虛擬機器重啟期資料 |
DiskStore |
(磁碟快取)的快取區大小。預設是30MB。每個Cache都應該有自己的一個緩衝區。 |
diskExpiryThreadIntervalSeconds |
磁碟失效執行緒執行時間間隔,預設是120秒 |
memoryStoreEvictionPolicy |
當達到maxElementsInMemory限制時,Ehcache將會根據指定的策略去清理記憶體。預設策略是LRU(最近最少使用)。你可以設定為FIFO(先進先出)或是LFU(較少使用)。 |
clearOnFlush |
記憶體數量最大時是否清除 |
memoryStoreEvictionPolicy |
可選策略有:LRU(最近最少使用,預設策略)、FIFO(先進先出)、LFU(最少訪問次數)。 FIFO,first in first out,先進先出。 |
Springboot整合ehcache
1、 建立springboot專案
2、 引入依賴
<!--開啟 cache 快取-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-cache</artifactId>
</dependency>
<!-- ehcache 快取 -->
<dependency>
<groupId>net.sf.ehcache</groupId>
<artifactId>ehcache</artifactId>
</dependency>
3、 引入配置檔案 ehcache.xml
在resource資料夾下建立檔案ehcache.xml,並進行配置
如果在其他資料夾下的話則在properties中指定ehcache.xm檔案的位置
spring.cache.ehcache.config=
# ehcache配置檔案地址
4、 Sevice層註解
@Cacheable : Spring在每次執行前都會檢查Cache中是否存在相同key的快取元素,如果存在就不再執行該方法,而是直接從快取中獲取結果進行返回,否則才會執行並將返回結果存入指定的快取中。
@CacheEvict : 清除快取。
@CachePut : @CachePut也可以宣告一個方法支援快取功能。使用@CachePut標註的方法在執行前不會去檢查快取中是否存在之前執行過的結果,而是每次都會執行該方法,並將執行結果以鍵值對的形式存入指定的快取中。
這三個方法中都有兩個主要的屬性:value 指的是 ehcache.xml 中的快取策略空間;key 指的是快取的標識,同時可以用 # 來引用引數。