我正在使用@Cacheable与Spring 3.1。我对Cacheable中的值和键映射参数有点困惑。 下面是我在做什么:@Cacheable with Spring 3.1
@Cacheable(value = "message", key = "#zoneMastNo")
public List<Option> getAreaNameOptionList(String local, Long zoneMastNo) {
//..code to fetch data form database..
return list;
}
@Cacheable(value = "message", key = "#areaMastNo")
public List<Option> getLocalityNameOptionList(String local, Long areaMastNo) {
//..code to fetch data form database..
return list;
}
什么发生在这里,第二个方法是依赖于第一种方法的设定值, 但问题是当我通过zoneMastNo = 1和areaMastNo = 1种那么第二种方法假设返回第一个方法结果。其实,我有很多的服务,因此,我正在寻找对特定用例使用缓存的通用值。 现在我的问题是:
- 我该如何解决这个问题?
- 为每项服务使用缓存是一个好主意吗?
- 经过指定的时间将缓存完全从内存中删除没有 使用@CacheEvict?
这意味着如果我在ehcache.xml中定义为:timeToIdleSeconds =“180”timeToLiveSeconds =“180”overflowToDisk =“true”diskExpiryThreadIntervalSeconds =“180”它会在3分钟后删除缓存值吗?你也可以剪切一些链接来解释元素的属性的目的 –
Balasaheb