SpringMvc整合缓存

说明:Springmvc参考之前的播客。

1.配置eacache.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" updateCheck="false">

    <!-- 定义缓存策略
        eternal="false"                 // 元素是否永恒,如果是就永不过期(必须设置)
        maxEntriesLocalHeap="1000"      // 堆内存中最大缓存对象数,0没有限制(必须设置)
        overflowToDisk="false"          // 当缓存达到maxElementsInMemory值是,是否允许溢出到磁盘(必须设置)
        diskPersistent="false"          // 磁盘缓存在VM重新启动时是否保持(默认为false)
        timeToIdleSeconds="0"           // 导致元素过期的访问间隔(秒为单位). 当eternal为false时,这个属性才有效,0表示可以永远空闲,默认为0
        timeToLiveSeconds="600"         // 元素在缓存里存在的时间(秒为单位). 0 表示永远存在不过期
        memoryStoreEvictionPolicy="LFU" // 当达到maxElementsInMemory时,如何强制进行驱逐默认使用"最近使用(LRU)"策略,其它还有先入先出FIFO,最少使用LFU,较少使用LRU
   -->
    <defaultCache eternal="false" maxEntriesLocalHeap="0" timeToIdleSeconds="300" timeToLiveSeconds="300"/>
    <cache name="myCache" maxEntriesLocalHeap="1000" />

</ehcache>

2.在spring-mvc.xml中整合

<!-- 启用缓存注解功能(请将其配置在Spring主配置文件中) -->
<cache:annotation-driven cache-manager="cacheManager"/>
<!-- 若只想使用Spring自身提供的缓存器,则注释掉下面的两个关于Ehcache配置的bean,并启用上面的SimpleCacheManager即可 -->
<!-- Spring提供的基于的Ehcache实现的缓存管理器 -->
<bean id="cacheManagerFactory" class="org.springframework.cache.ehcache.EhCacheManagerFactoryBean">
    <property name="configLocation" value="classpath:ehcache.xml"/>
</bean>
<bean id="cacheManager" class="org.springframework.cache.ehcache.EhCacheCacheManager">
    <property name="cacheManager" ref="cacheManagerFactory"/>
</bean>

3.案例

/**
 * 缓存配置测试(成功)
 * @param id
 * @return
 */
@RequestMapping("ehcacheTest")
@ResponseBody
@Cacheable(value="myCache", key="#id")
public User ehcacheTest(@RequestParam("id") final String id){
    System.out.println("缓存配置成功了吗? YES");
    return userService.getUserById(id);
}
到此缓存配置完成了



猜你喜欢

转载自blog.csdn.net/liqingwei168/article/details/80222824