1. 程式人生 > 其它 >uniapp 預覽PDF - web-view元件用法

uniapp 預覽PDF - web-view元件用法

簡介

EhCache 是一個純Java的程序內快取框架,具有快速、精幹等特點,是Hibernate中預設CacheProvider。Ehcache是一種廣泛使用的開源Java分散式快取。主要面向通用快取,Java EE和輕量級容器。它具有記憶體和磁碟儲存,快取載入器,快取擴充套件,快取異常處理程式,一個gzip快取servlet過濾器,支援REST和SOAP api等特點。

主要特性

  1. 快速
  2. 簡單
  3. 多種快取策略
  4. 快取資料有兩級:記憶體和磁碟,因此無需擔心容量問題
  5. 快取資料會在虛擬機器重啟的過程中寫入磁碟
  6. 可以通過RMI、可插入API等方式進行分散式快取
  7. 具有快取和快取管理器的偵聽介面
  8. 支援多快取管理器例項,以及一個例項的多個快取區域
  9. 提供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,先進先出。 
LFU, Less Frequently Used,一直以來最少被使用的。如上面所講,快取的元素有一個hit屬性,hit值最小的將會被清出快取。 
LRU,Least Recently Used,最近最少使用的,快取的元素有一個時間戳,當快取容量滿了,而又需要騰出地方來快取新的元素的時候,那麼現有快取元素中時間戳離當前時間最遠的元素將被清出快取。

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等特點。

主要特性

  1. 快速
  2. 簡單
  3. 多種快取策略
  4. 快取資料有兩級:記憶體和磁碟,因此無需擔心容量問題
  5. 快取資料會在虛擬機器重啟的過程中寫入磁碟
  6. 可以通過RMI、可插入API等方式進行分散式快取
  7. 具有快取和快取管理器的偵聽介面
  8. 支援多快取管理器例項,以及一個例項的多個快取區域
  9. 提供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,先進先出。 
LFU, Less Frequently Used,一直以來最少被使用的。如上面所講,快取的元素有一個hit屬性,hit值最小的將會被清出快取。 
LRU,Least Recently Used,最近最少使用的,快取的元素有一個時間戳,當快取容量滿了,而又需要騰出地方來快取新的元素的時候,那麼現有快取元素中時間戳離當前時間最遠的元素將被清出快取。

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等特點。

主要特性

  1. 快速
  2. 簡單
  3. 多種快取策略
  4. 快取資料有兩級:記憶體和磁碟,因此無需擔心容量問題
  5. 快取資料會在虛擬機器重啟的過程中寫入磁碟
  6. 可以通過RMI、可插入API等方式進行分散式快取
  7. 具有快取和快取管理器的偵聽介面
  8. 支援多快取管理器例項,以及一個例項的多個快取區域
  9. 提供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,先進先出。 
LFU, Less Frequently Used,一直以來最少被使用的。如上面所講,快取的元素有一個hit屬性,hit值最小的將會被清出快取。 
LRU,Least Recently Used,最近最少使用的,快取的元素有一個時間戳,當快取容量滿了,而又需要騰出地方來快取新的元素的時候,那麼現有快取元素中時間戳離當前時間最遠的元素將被清出快取。

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 指的是快取的標識,同時可以用 # 來引用引數。