Redis缓存中的自定义名称

时间:2019-02-28 10:16:12

标签: java spring-boot caching redis

我正在使用app.use('/api', proxy({ target: 'http://www.example.org', changeOrigin: true, selfHandleResponse: true, // so that the onProxyRes takes care of sending the response onProxyRes: function(proxyRes, req, res) { var body = new Buffer(''); proxyRes.on('data', function(data) { body = Buffer.concat([body, data]); }); proxyRes.on('end', function() { body = body.toString(); console.log("res from proxied server:", body); res.end("my response to cli"); }); } })); 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。 我正在搜索诸如customKeyGenerator之类的东西。 请给我您的建议。TIA

1 个答案:

答案 0 :(得分:1)

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