• Ehcache缓存配置


    下面介绍一下简单使用的配置过程: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"); 
    需要修改,就先取得再修改,删除就直接删除。 

  • 相关阅读:
    计算与软件工程 作业三
    计算与软件工程 作业二
    计算与软件工程 作业一
    计算与软件工程 作业六
    计算与软件工程 作业五
    计算与软件工程 作业四
    计算与软件工程 作业三
    计算与软件工程 作业二
    计算与软件工程 作业一
    第六次作业
  • 原文地址:https://www.cnblogs.com/chen-lhx/p/5616335.html
Copyright © 2020-2023  润新知