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
}
答案 0 :(得分:1)
如果要使用磁盘存储,则需要确保缓存的对象为Serializable
。
对于地图示例,它表示地图本身,键及其包含的值。