Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
在阅读 Spring 3.1 中的新缓存抽象时,我想将此功能应用到我的项目中。
我可以缓存对没有参数的方法的调用吗?
@Cacheable("xCache") public List<X> loadAllX() { ... }
链接的博客文章指出
使用方法参数作为键执行缓存查找
所以应该不可能缓存这个方法,对吧?
简短的回答:是的,没有任何参数的方法将像任何其他方法一样被缓存。我想该方法的缓存中只有一个条目。
您可以通过使用“缓存 SpEL 可用元数据”来覆盖此行为,如下所述:
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 列表