我正在使用 Spring 。我想缓存以下方法:
@Cacheable(cacheName = "xxx", key = "'foo_'.concat(#va1)")
public void foo(String var1, List<String> var2) { ... }
我想将 var2 的值集包含到缓存键中。我知道
key = "'foo_'.concat(#va1).concat('_').concat(#var2)"
是错误的。 (因为 (#var2)
将返回其内存地址,而不是值)。
我应该做什么?
最佳答案
可以获取List的hashCode:
key = "'foo_'.concat(#va1).concat('_').concat(#var2.hashCode())"
或者
key = "'foo_'.concat(#va1).concat('_').concat(#var2.toString())"
尝试一下。
对于第二个,您的 key 可能会根据列表的大小而变得很长。
关于java - spring中如何缓存列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44515765/