java - 如何将缓存控制添加到 @RestController servlet 路径?

标签 java spring http

我有一个 servlet 通过 spring 提供图像资源:

@ResponseStatus(HttpStatus.OK)
@RequestMapping(value = "/thumbnails", method = RequestMethod.GET)
public ResponseEntity<InputStreamResource> getThumbnail(int id) {
    return service.find(id);
}

生成的 http header :Cache-control: "max-age=0"

问题:如何控制该方法的缓存 header ?

最佳答案

我猜你可以实现最后修改的检查,Spring 支持它 - 引用 API

有点像

@ResponseStatus(HttpStatus.OK)
@RequestMapping(value = "/thumbnails", method = RequestMethod.GET)
public ResponseEntity<InputStreamResource> getThumbnail(int id) {


    youeObject = service.find(id);
    ResponseBuilder builder = Response.ok(youeObject);
    builder.cacheControl(CacheControl.maxAge(24, TimeUnit.HOURS)).cachePrivate());
    return builder.build();

}

关于java - 如何将缓存控制添加到 @RestController servlet 路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35427839/

相关文章:

java - 使用牛顿法确定平方根

json - 将json对象发送到spring MVC中的GET方法

http ResponseWriter 重复答案 golang

c++ - OSX 10.8.2 上的 Poco C++ 库 : Undefined symbols for architecture x86_64

http - nginx https 重定向添加 www

java - 单击事件在java中的selenium webdriver中不起作用?

java - 从数据库中检索单个 ROW

java - 从已删除的类中获取错误

java - 如何使用java代码向MySQL数据库添加信息

java - 删除 H2 数据而不删除表