下面介紹一下簡單使用的配置過程:ehcache.jar及spring相關jar就不說了,加到專案中就是了。
簡單的使用真的很簡單。但只能做為入門級了。
1.ehcache.xml,可放classpath根目錄下,
<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" /> // 快取存放在記憶體中
<diskStore path="G:/ehcache/temp/"/> //快取存放在磁碟中 <defaultCache maxElementsInMemory="10000" eternal="false" timeToIdleSeconds="120" timeToLiveSeconds="120" overflowToDisk="true" diskSpoolBufferSizeMB="30" maxElementsOnDisk="10000000" diskPersistent="false" diskExpiryThreadIntervalSeconds="120" memoryStoreEvictionPolicy="LRU" /> <cache name="DEFAULT_CACHE" maxElementsInMemory="10000" eternal="false" timeToIdleSeconds="120" timeToLiveSeconds="120" overflowToDisk="true" diskSpoolBufferSizeMB="30" maxElementsOnDisk="10000000" diskPersistent="false" diskExpiryThreadIntervalSeconds="120" memoryStoreEvictionPolicy="LRU" /> </ehcache> <!-- 1.必須要有的屬性: name: cache的名字,用來識別不同的cache,必須惟一。 maxElementsInMemory: 記憶體管理的快取元素數量最大限值。 maxElementsOnDisk: 硬碟管理的快取元素數量最大限值。預設值為0,就是沒有限制。 eternal: 設定元素是否持久話。若設為true,則快取元素不會過期。 overflowToDisk: 設定是否在記憶體填滿的時候把資料轉到磁碟上。 2.下面是一些可選屬性: timeToIdleSeconds: 設定元素在過期前空閒狀態的時間,只對非永續性快取物件有效。預設值為0,值為0意味著元素可以閒置至無限長時間。 timeToLiveSeconds: 設定元素從建立到過期的時間。其他與timeToIdleSeconds類似。 diskPersistent: 設定在虛擬機器重啟時是否進行磁碟儲存,預設為false.(我的直覺,對於安全小型應用,宜設為true)。 diskExpiryThreadIntervalSeconds: 訪問磁碟執行緒活動時間。 diskSpoolBufferSizeMB: 存入磁碟時的緩衝區大小,預設30MB,每個快取都有自己的緩衝區。 memoryStoreEvictionPolicy: 元素逐出快取規則。共有三種,Recently Used (LRU)最近最少使用,為預設。 First In First Out (FIFO),先進先出。Less Frequently Used(specified as LFU)最少使用 -->
2.第二步,配置applicationContext-ehcache.xml,與spring整合檔案
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:context="http://www.springframework.org/schema/context" xmlns:p="http://www.springframework.org/schema/p" xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd" default-autowire="byName" default-lazy-init="false"> <!-- 引用ehCache的配置 --> <bean id="defaultCacheManager" class="org.springframework.cache.ehcache.EhCacheManagerFactoryBean"> <property name="configLocation"> <value>classpath:ehcache.xml</value> </property> </bean> <!-- 定義ehCache的工廠,並設定所使用的Cache name --> <bean id="ehCache" class="org.springframework.cache.ehcache.EhCacheFactoryBean"> <property name="cacheManager"> <ref local="defaultCacheManager"/> </property> <property name="cacheName"> <value>DEFAULT_CACHE</value> </property> </bean> </beans>
實際上這樣就把兩者結合起來了。當然叢集的話還得另外配置,這裡只講最簡單的。
下面使用:
3. 新增資料到快取:
net.sf.ehcache.Cache ehCache=ApplicationContextUtils.getBean("ehCache"); net.sf.ehcache.Element lgEle=new net.sf.ehcache.Element("loginName", users.getLoginName()); net.sf.ehcache.Element pwdEle=new net.sf.ehcache.Element("password", users.getPassword()); ehCache.put(lgEle); ehCache.put(pwdEle);
這樣使用就可。
當然,在spring管理的bean中,也可:
private Cache ehCache; @Resource(name="ehCache") public void setEhCache(Cache ehCache) { this.ehCache = ehCache; }
4.使用。
這個其實就不用說了,大家都會了,我相信,能過對應的key值去獲取就是了。
如: Element lgEle= ehCache.get("loginName");
需要修改,就先取得再修改,刪除就直接刪除。