java - redis 缓存中的自定义名称

标签 java spring-boot caching redis

我正在使用 Spring Boot 1.5.10.RELEASEspring-boot-starter-data-redis 版本:2.1.2.RELEASE。 我需要根据方法中传递的参数给出缓存的名称。我的代码示例如下:

@Cacheable(value = "Company"+"-"+"#companyId",key="#employeeId")
public Employee getEmployee(Long companyId, Long employeeId) {
    //Some code here

        }

希望名字Company-1 但实际结果是 Company-#companyId。 我正在搜索类似 customKeyGenerator 的内容。 请给我你的建议TIA

最佳答案

恐怕使用 "Company"+"-"+"#companyId"不会起作用,因为“值”会将所有内容解释为字符串。 'key' 接受用于动态计算 key 的 Spring 表达式语言 (SpEL) 表达式,因此 #employeeId 有效。 你需要一个自定义的 cacheResolver : spring cache with custom cacheResolver

关于java - redis 缓存中的自定义名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54923242/

相关文章:

spring-boot - OpenApi 使用 JSON 发送 MultipartFile 请求获取 'application/octet-stream' 错误不支持

.net - EntLib 缓存应用程序 block 的替代方案?

java - Tomcat 7 到 8.5 升级 : getResourceAsStream throws NPE

java - 如何从 Java 中的 JSON 字符串中删除元素?

java - null是java中的一个类吗?

eclipse - Spring Tool Suite 创建新的spring starter 项目报错

Java Spring Boot : Return only some attributs of an object

asp.net - .NET 4.0 ObjectCache 的线程安全和范围管理

javascript - 为什么在jquery中缓存ID时使用索引0?

java - @Autowired 与 XML