缓存不适用于地图

时间:2015-08-04 14:47:14

标签: java spring caching ehcache

Java - Spring - ehcache

有以下代码来实现eh-cache工作完美的对象列表,但当我试图缓存地图时,它总是试图加载新的副本...缓存不适用于地图吗?任何帮助表示感谢。

Spring配置

@Bean
public CacheManager cacheManager() {
    return new EhCacheCacheManager(ehCacheCacheManager().getObject());
}

@Bean
public EhCacheManagerFactoryBean ehCacheCacheManager() {
    EhCacheManagerFactoryBean cmfb = new EhCacheManagerFactoryBean();
    cmfb.setConfigLocation(new ClassPathResource("ehcache.xml"));
    cmfb.setShared(true);
    return cmfb;
}


<!-- ehcache entry -->
    <cache name="serviceMapCache" 
        maxEntriesLocalHeap="5000"
        maxEntriesLocalDisk="50000" 
        eternal="false" 
        diskSpoolBufferSizeMB="20"
        timeToLiveSeconds="10800" 
        memoryStoreEvictionPolicy="LFU" 
        transactionalMode="off">
        <persistence strategy="localTempSwap" />
    </cache>

用法

@Cacheable(value=CacheNames.SERVICE_MAP_CACHE)
public Map<String, Service> getAllServicesToMap(){
 // load map 
 // return map
 }

1 个答案:

答案 0 :(得分:1)

如果要使用磁盘存储,则需要确保缓存的对象为Serializable。 对于地图示例,它表示地图本身,键及其包含的值。