【发布时间】:2021-04-02 07:23:48
【问题描述】:
我用一种方法缓存一些查询
@Override
@Cacheable(cacheNames = "user-actions")
public UserAction getUserAction(UUID userId) {
...
}
我想用另一种方法驱逐缓存。如果方法具有相同的签名,则它可以工作,例如
@CacheEvict(cacheNames = "user-actions")
public void evictUserLevel(UUID userId) {
log.info("Cache user-actions has been evicted");
}
但是,如果我不将userId 传递给将要驱逐缓存的方法,或者如果它有多个参数,有没有办法驱逐缓存?这不起作用:
@CacheEvict(cacheNames = "user-actions")
public void processEvent(UserEvent event, UUID userId) {
...
}
【问题讨论】:
-
指定方法参数用作缓存键(或将缓存设置为逐出所有)。
标签: java spring spring-cache