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() {
}