spring使用ehcache缓存

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了spring使用ehcache缓存相关的知识,希望对你有一定的参考价值。

1.首先去官方下载spring jar包,我用的是sring 4.1.6已经集成了ehcache。

2.写spring配置文件,注意需要添加 cache约束文件。

     xmlns:cache="http://www.springframework.org/schema/cache"

    

     http://www.springframework.org/schema/cache
     http://www.springframework.org/schema/cache/spring-cache.xsd

技术分享

 

     3.在spring配置文件中配置ehcache缓存管理器:

     

       <!-- 缺省使用下面cachemanager -->
       <cache:annotation-driven/>  ---开启cache扫描
       <bean id="cacheManagerFactory" class="org.springframework.cache.ehcache.EhCacheManagerFactoryBean">
               <property name="configLocation" value="classpath:ehcache.xml"></property>
       </bean>
       <bean id="cacheManager" class="org.springframework.cache.ehcache.EhCacheCacheManager">
               <property name="cacheManager" ref="cacheManagerFactory"></property>
       </bean>
       <bean id="test" class="test.cn.test"></bean>

     4.配置ehcache.xml,上面的路径写的是该文件保存在src下。

   

         <?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
                             maxElementsInMemory="1000"
                             eternal="false"
                             timeToIdleSeconds="120"
                             timeToLiveSeconds="120"
                             overflowToDisk="false"/>

         <!-- 菜单缓存 -->
         <cache name="menuCache"
                    maxElementsInMemory="1000"
                    eternal="false"
                    timeToIdleSeconds="120"
                    timeToLiveSeconds="120"
                    overflowToDisk="false"
                    memoryStoreEvictionPolicy="LRU"/>

        </ehcache>

  

5.配置web.xml这里就不说了,用spring监听器加载spring.xml文件就可以。(spring基础)。

6.配置成功就可以测试了。 

@Cacheable(value="menuCache",key="#id")  --添加缓存
    public int query(int id){
              System.out.println("query");
              return id;
     }
@Cacheable(value="menuCache",key="#str")
     public String querystr(String str){
               System.out.println("querystr");
               return "123";
      }
@CacheEvict(value="menuCache")   ---删除缓存
      public void update(){
           System.out.println("update");
      }

可以发现每次调用query()的时候再次调用就不会打印query了。说明缓存成功,当做修改的时候调用CacheEvict,将缓存清空。

以上是关于spring使用ehcache缓存的主要内容,如果未能解决你的问题,请参考以下文章

Ehcache 整合Spring 使用页面对象缓存

Spring整合Ehcache管理缓存

Spring整合Ehcache管理缓存

Spring整合Ehcache管理缓存

Ehcache 整合Spring 使用页面对象缓存

Ehcache 整合Spring 使用页面对象缓存