【发布时间】:2023-04-07 15:25:01
【问题描述】:
对于 cachedData 的不同值,它每次都从参数中的 cachedData 获取响应日期,而根据我的理解,如果对于特定的 propertyId,如果有一些带有一些 cachedData 参数的调用,它不应该再次获取,而是应该从缓存。
我的方法
@Cacheable(value = "responseCached", key="#propertyId", condition = "#result != null")
public Date fetchCachedData(String propertyId, Map<String, Date> cachedData) {
return cachedData.get(propertyId);
}
ehCacheConfig
@EnableCaching
@Configuration
public class EhCacheConfig {
@Bean
public EhCacheManagerFactoryBean ehCacheManagerFactory(){
EhCacheManagerFactoryBean ehCacheBean = new EhCacheManagerFactoryBean();
ehCacheBean.setConfigLocation(new ClassPathResource("ehcache.xml"));
ehCacheBean.setShared(true);
return ehCacheBean;
}
@Bean
public CacheManager cacheManager() {
SimpleCacheManager cacheManager = new SimpleCacheManager();
List<Cache> caches = new ArrayList<Cache>();
caches.add(new ConcurrentMapCache("responseCached"));
cacheManager.setCaches(caches);
return cacheManager;
}
}
【问题讨论】:
标签: java spring-boot caching ehcache spring-cache