ehcache配置文件示例代碼

java代碼:

package com.roncoo.eshop.cache.configuration;

import org.springframework.cache.annotation.EnableCaching;
import org.springframework.cache.ehcache.EhCacheCacheManager;
import org.springframework.cache.ehcache.EhCacheManagerFactoryBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.io.ClassPathResource;

/**
 * 緩存配置管理類
 * @author Administrator
 *
 */
@Configuration
@EnableCaching
public class CacheConfiguration {

	@Bean
	public EhCacheManagerFactoryBean ehCacheManagerFactoryBean() {
		EhCacheManagerFactoryBean ehCacheManagerFactoryBean = new EhCacheManagerFactoryBean();
		ehCacheManagerFactoryBean.setConfigLocation(new ClassPathResource("ehcache.xml"));   
		ehCacheManagerFactoryBean.setShared(true);
		return ehCacheManagerFactoryBean;
	}
	
	@Bean
	public EhCacheCacheManager ehCacheCacheManager(EhCacheManagerFactoryBean ehCacheManagerFactoryBean) {
		return new EhCacheCacheManager(ehCacheManagerFactoryBean.getObject());
	}
	
}

 

配置文件:

<?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其實是支持內存+磁盤+堆外內存,幾個層級的緩存 -->
  	<!-- 在這裏設置一下,但是一般不用的 -->
    <diskStore path="java.io.tmpdir/Tmp_EhCache" />
    
    <!-- defaultCache,是默認的緩存策略 -->
    <!-- 如果你指定的緩存策略沒有找到,那麼就用這個默認的緩存策略 -->
    <!-- external:如果設置爲true的話,那麼timeout就沒有效果,緩存就會一直存在,一般默認就是false -->
    <!-- maxElementsInMemory:內存中可以緩存多少個緩存條目,在實踐中,你是需要自己去計算的,比如你計算你要緩存的對象是什麼?有多大?最多可以緩存多少MB,或者多少個G的數據?除以每個對象的大小,計算出最多可以放多少個對象 -->
    <!-- overflowToDisk:如果內存不夠的時候,是否溢出到磁盤 -->
    <!-- diskPersistent:是否啓用磁盤持久化的機制,在jvm崩潰的時候和重啓之間,不用 -->
    <!-- timeToIdleSeconds:對象最大的閒置的時間,如果超出閒置的時間,可能就會過期,我們這裏就不用了,緩存最多閒置5分鐘就被幹掉了 -->
    <!-- timeToLiveSeconds:對象最多存活的時間,我們這裏也不用,超過這個時間,緩存就過期,就沒了 -->
    <!-- memoryStoreEvictionPolicy:當緩存數量達到了最大的指定條目數的時候,需要採用一定的算法,從緩存中清除一批數據,LRU,最近最少使用算法,最近一段時間內,最少使用的那些數據,就被幹掉了 -->
    <defaultCache
        eternal="false"
        maxElementsInMemory="1000"
        overflowToDisk="false"
        diskPersistent="false"
        timeToIdleSeconds="300"
        timeToLiveSeconds="0"
        memoryStoreEvictionPolicy="LRU" />
 
 	<!-- 手動指定的緩存策略 -->
 	<!-- 比如你一個應用吧,可能要緩存很多種不同的數據,比如說商品信息,或者是其他的一些數據 -->
 	<!-- 對不同的數據,緩存策略可以在這裏配置多種 -->
    <cache
        name="local"  
        eternal="false"
        maxElementsInMemory="1000"
        overflowToDisk="false"
        diskPersistent="false"
        timeToIdleSeconds="300"
        timeToLiveSeconds="0"
        memoryStoreEvictionPolicy="LRU" />
      
	<!-- ehcache這種東西,簡單實用,是很快速的,1小時上手可以用在項目裏了,沒什麼難度的 -->   
    <!-- ehcache這個技術,如果講深了,裏面的東西還是很多的,高級的feature,但是我們這裏就不涉及了 -->  
      
</ehcache>

 

發佈了485 篇原創文章 · 獲贊 75 · 訪問量 83萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章