Spring 引导缓存列表
Spring Boot Cache List
我有一个 returns 列出的方法。列表变量来自数据库,有时数据正在更新,所以我想缓存列表但例如每半小时我想清除缓存。我怎样才能用 Cacheable 和 CacheEvict 方法做到这一点?我尝试以与注释相同的方法使用它们,但它没有用,除了这种方法我无处可调用它们。
@Cacheable(value = "apps")
@Scheduled(cron = "0 0/30 * * * ?")
@CacheEvict(value = "apps")
public List<Apps> findLatestApps() {
List<Apps> apps = entityManager.createNamedQuery("AppsQuery", Apps.class).getResultList();
...
return Apps;
}
这是我调用列表方法的地方;
public ResponseEntity<AppsResponse> getLatestApps(@PathVariable String name) throws ResourceNotFoundException {
AppsDto appsDto = appsService.findLatestApps(name);
return new ResponseEntity<>(new ModelMapper().map(appsDto, AppsResponse.class), HttpStatus.OK);
}
你不能用同样的方法做到这一点。因为方法应该做什么?缓存还是逐出?
@Cacheable(value = "apps")
public List<Apps> findLatestApps() {
List<Apps> apps = entityManager.createNamedQuery("AppsQuery", Apps.class).getResultList();
...
return apps;
}
@Scheduled(cron = "0 0/30 * * * ?")
@CacheEvict(value = "apps")
public void clearAppsCache() {
}
我有一个 returns 列出的方法。列表变量来自数据库,有时数据正在更新,所以我想缓存列表但例如每半小时我想清除缓存。我怎样才能用 Cacheable 和 CacheEvict 方法做到这一点?我尝试以与注释相同的方法使用它们,但它没有用,除了这种方法我无处可调用它们。
@Cacheable(value = "apps")
@Scheduled(cron = "0 0/30 * * * ?")
@CacheEvict(value = "apps")
public List<Apps> findLatestApps() {
List<Apps> apps = entityManager.createNamedQuery("AppsQuery", Apps.class).getResultList();
...
return Apps;
}
这是我调用列表方法的地方;
public ResponseEntity<AppsResponse> getLatestApps(@PathVariable String name) throws ResourceNotFoundException {
AppsDto appsDto = appsService.findLatestApps(name);
return new ResponseEntity<>(new ModelMapper().map(appsDto, AppsResponse.class), HttpStatus.OK);
}
你不能用同样的方法做到这一点。因为方法应该做什么?缓存还是逐出?
@Cacheable(value = "apps")
public List<Apps> findLatestApps() {
List<Apps> apps = entityManager.createNamedQuery("AppsQuery", Apps.class).getResultList();
...
return apps;
}
@Scheduled(cron = "0 0/30 * * * ?")
@CacheEvict(value = "apps")
public void clearAppsCache() {
}