Java Spring Cache-control设置最大年龄

时间:2017-01-21 19:02:15

标签: java spring caching cache-control

我尝试将“Cache-control:max-age = 60”设置为不经常从服务器获取数据超过60秒。但我真的不知道该怎么做。我试过这样的事情:

@GetMapping(value = "/movies")
public List<Movie> getMoviesData() {
    CacheControl.maxAge(60, TimeUnit.SECONDS);
    return (List<Movie>) movieRepository.findAll();
}

但它不会在邮差标题中显示任何内容。后来我尝试了这个:

在pom.xml中:

<dependency>
    <groupId>javax.ws.rs</groupId>
    <artifactId>javax.ws.rs-api</artifactId>
    <version>2.1-m02</version>
</dependency>

以下是代码:

@GetMapping(value = "/movies")
public List<Movie> getMoviesData() {
    CacheControl cc = new CacheControl();
    cc.setMaxAge(60);
    cc.setPrivate(true);
    return (List<Movie>) movieRepository.findAll();
}

但它也没有显示任何内容。现在我尝试了这个:

@GetMapping(value = "/movies")
public List<Movie> getMoviesData(HttpServletResponse response) {
    response.addHeader("Cache-Control", "max-age=60");
    response.addHeader("Last-Modified", new SimpleDateFormat("dd-MM-yyyy_HH:mm:ss").format(new Date()));
    return (List<Movie>) movieRepository.findAll();
}

它显示Cache-Control →max-age=60,但每次发送get请求时都会刷新Last-Modified。例如,我有:

Last-Modified →21-01-2017_20:00:41

几秒后

Last-Modified →21-01-2017_20:00:46

所以max-age=60不起作用。有人可能知道我做错了什么以及如何正确地做到这一点?

0 个答案:

没有答案