Spring 使用 Spring 表达式语言启动 Caffeine 缓存
Spring Boot Caffeine Cache with Spring Expression Language
我正在使用 Spring 启动时使用 Caffeine Cache。我的缓存键是一个 Long 键,我需要键为例如:“1234-RULE”,其中 1234 是 Long 对象,-RULE 只是一个后缀。我尝试了以下方法来实现这一点:
private final static String RULE_KEY = "#rule.id.concat('-RULE')";
@Cacheable(value = CacheConfig.RULE_OFFSET, key = RULE_KEY)
public BigDecimal getRuleOffset(final Rule rule) {
// some code to fetch the value and return it
}
调试时出现错误:
Error occurred while performing the request. Message: EL1004E: Method call: Method concat(java.lang.String) cannot be found on type java.lang.Long
我的 rule.id 是 Long,我用来连接 ID 和后缀的表达式似乎不正确。你能告诉我如何在这里为我的用例连接一个 long 和 string 吗?
EL 的文档有时可能有点奇怪,但您可以在这里使用 +
作为连接运算符:
#rule.id + '-RULE'
我正在使用 Spring 启动时使用 Caffeine Cache。我的缓存键是一个 Long 键,我需要键为例如:“1234-RULE”,其中 1234 是 Long 对象,-RULE 只是一个后缀。我尝试了以下方法来实现这一点:
private final static String RULE_KEY = "#rule.id.concat('-RULE')";
@Cacheable(value = CacheConfig.RULE_OFFSET, key = RULE_KEY)
public BigDecimal getRuleOffset(final Rule rule) {
// some code to fetch the value and return it
}
调试时出现错误:
Error occurred while performing the request. Message: EL1004E: Method call: Method concat(java.lang.String) cannot be found on type java.lang.Long
我的 rule.id 是 Long,我用来连接 ID 和后缀的表达式似乎不正确。你能告诉我如何在这里为我的用例连接一个 long 和 string 吗?
EL 的文档有时可能有点奇怪,但您可以在这里使用 +
作为连接运算符:
#rule.id + '-RULE'