说明: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); }到此缓存配置完成了