java - spring中如何缓存列表?

标签 java spring caching spring-el

我正在使用 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/

相关文章:

java - 如何使用 spring spEL 将 servlet 上下文路径注入(inject)到 bean 属性?

spring - 在 Spring 中配置特定的内存数据库以用于测试目的

caching - 在 DotNetNuke 中设置 HTTP 过期 header ?

php - 使用 PHP 自动将引用的 LESS 文件编译成 CSS

java - 创建随机签名

java - 使用 iText 将 HTML 转换为 PDF

java - 变量可能未初始化错误和一般建议

java - 如何获取 c3p0 mbeans 对象的固定对象名称

caching - 实现缓存

java - Bing Visual Search API (v7) 未返回图像响应