没有参数的Spring 3.1 Cache Abstraction

时间:2012-05-16 05:58:21

标签: spring caching

阅读Spring 3.1中的新Cache Abstraction,我想将此功能应用于我的项目。

我可以将调用缓存到没有参数的方法吗?

@Cacheable("xCache")
public List<X> loadAllX() {
    ...
}

链接的博客文章

  

使用方法参数

作为关键字执行缓存查找

所以不应该缓存这个方法,对吗?

简答:是的,没有任何参数的方法将像其他任何方法一样进行缓存。我猜这个方法的缓存中只有一个条目。

1 个答案:

答案 0 :(得分:10)

您可以使用“ Cache SpEL available metadata ”覆盖此行为,如下所述:

http://static.springsource.org/spring/docs/3.1.x/spring-framework-reference/html/cache.html#cache-spel-context

在您的示例中,您可以指定以下内容:

@Cacheable(value = "xCache", key = "#root.methodName") 
public List<X> loadAllX() { 
    ... 
} 

哪个会使用键“loadAllX”

缓存“xCache”中的X列表