首页 > 解决方案 > redis缓存中的自定义名称

问题描述

我正在使用Spring Boot 1.5.10.RELEASEspring-boot-starter-data-redis version: 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

标签: javaspring-bootcachingredis

解决方案


恐怕使用 "Company"+"-"+"#companyId" 不起作用,因为 'value' 将所有内容解释为字符串。'key' 接受用于动态计算密钥的 Spring 表达式语言 (SpEL) 表达式,因此 #employeeId 有效。您需要一个自定义 cacheResolver : 带有自定义 cacheResolver 的弹簧缓存


推荐阅读