配置标签:<cache:annotation-driven cache-manager="myCacheManager" />
缓存注解:@Cacheable 支出spel表达式
使用方式如:@Cacheable(value = "users", key = #user.age<35)
@CacheEvict 从缓存存储器中删除一个值
@CachePut 与@Cacheable 注解相同工作,返回值放入缓存。用返回值更新缓存存储器
缓存管理器的实现:SimpleCacheManager 可采用ConcurrentMapCacheFactoryBean
企业级方案采用:Ehcache
bean id="cacheManager" class="org.springframework.cache.ehcache.EhCacheCacheManager"p:cache-manager-ref="ehcacheManager"/>
<bean id="ehcacheManager"class="org.springframework.cache.ehcache.EhCacheManagerFactoryBean" p:config-location="ehcache-spring.xml"/>
ehcache 配置文件如下:
<ehcache>
<diskStore path="java.io.tmpdir"/>
<defaultCache
maxElementsInMemory="10000"
eternal="false"
timeToIdleSeconds="120"
timeToLiveSeconds="120"
overflowToDisk="true"
maxElementsOnDisk="10000000"
diskPersistent="false"
diskExpiryThreadIntervalSeconds="120"
memoryStoreEvictionPolicy="LRU"
/>
</ehcache>