【发布时间】:2018-03-23 14:13:15
【问题描述】:
以下工作(导致执行驱逐):
fooController {
@ApiEndpoint
public delete(id) {
fooService.deleteFoo(id)
}
}
fooService {
@CacheEvict(value = "cache1", key = "#id")
public void deleteFoo(Long id) {
//delete logic here
}
}
但这不起作用(没有从缓存中清除):
fooController {
@ApiEndpoint
public delete(name) {
fooService.deleteFoo2(name)
}
}
fooService {
public void deleteFoo2(String name) {
//delete logic here
deleteFoo(name.getId())
}
@CacheEvict(value = "cache1", key = "#id")
public void deleteFoo(Long id) {
//delete logic here
}
}
为什么我的@CacheEvict 注解只在直接从控制器调用方法时才被调用?
我使用 Redis 作为缓存机制。
【问题讨论】:
标签: spring caching redis controller evict