我将@Cacheable与Spring 3.1一起使用。我对 Cacheable 中的值和键映射参数有点困惑。这是我正在做的事情:
@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 ?