问题描述
Spring 缓存使用 key
参数作为缓存键或传递给函数的参数(如果 key
不存在)。如果键和函数参数都丢失,key
会是什么?
考虑以下情况,即 key
参数和函数参数都不存在。在这种情况下,spring 缓存如何工作?
@Cacheable(value="cacheTest")
public string sayHello(){
return "hello"
}
解决方法
请参阅有关缓存键主题的当前 Spring Cache Abstraction 文档,here。
简而言之...
"如果没有给出参数,则返回 SimpleKey.EMPTY。"
在您的情况下,Spring 将创建一个“空”SimpleKey
(即 SimpleKey.EMPTY
)作为您的 {{ 1}} sayHello()
服务方法。
例如,请参阅此 test case。