java - redis缓存中的自定义名称
问题描述
我正在使用Spring Boot 1.5.10.RELEASE
和spring-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
解决方案
恐怕使用 "Company"+"-"+"#companyId" 不起作用,因为 'value' 将所有内容解释为字符串。'key' 接受用于动态计算密钥的 Spring 表达式语言 (SpEL) 表达式,因此 #employeeId 有效。您需要一个自定义 cacheResolver : 带有自定义 cacheResolver 的弹簧缓存
推荐阅读
- html - 我如何解码 Xamarin Forms 上的 Html 标签
- javascript - 使用 html 数据属性设置要显示的块数量
- windows - 在 Windows 上运行katalon docker
- typescript - 属性描述符设置为 enumerable: false, writable: true on class
- powershell - 网络视图 [Windows]
- mysql - 从备份文件恢复Mysql
- powerbi - 如何创建一个筛选器来筛选由 Power BI 上的可视表上的度量“生成”的值?可能吗?
- api - 使用 RingCentral API 从多个扩展发送短信
- eclipse - 在 Eclipse 上安装 Codename One 插件时出错
- c# - 屏幕中心的 Xamarin ContentView