为什么在Spring MVC中对http缓存控制的支持不佳?

时间:2017-10-23 07:19:23

标签: java spring spring-mvc spring-boot cache-control

阅读本书enter image description here并更好地了解基于缓存的Web扩展。但是当我尝试在我的Spring Boot项目中添加http缓存控件时,我发现缓存控件并没有什么特别之处。我得到的唯一资源是REST practice:javadoc。 ETag最有用的文章是ResponseEntity

这让我感到困惑......如果缓存控制非常好,为什么很少支持Etag生成和缓存控制资源?或者这可能不是现在最好的做法?

现在我的实现看起来像这样:

glmnet

看起来不是很优雅。希望有人可以给出答案。

1 个答案:

答案 0 :(得分:1)

注释were considered for response headers但决定反对,所以你必须以某种方式手动处理它(不一定像你的代码中那样)。

决定反对的主要原因是响应复杂的方式可能会出现重定向等因此注释不合适。

从上次评论中引用

  

这里提到的具体用例是Cache-Control。请注意   4.1我们添加了ResponseEntity构建器,在4.2中我们添加了一个与ResponseEntity构建器一起使用的CacheControl构建器   以编程方式执行此操作非常方便,并且有一些   与eTags和lastModified结合使用时的其他好处(   自动检查+ 304)。我们还特意考虑并决定了   针对@CacheControl标题,因为这是一个交叉要求。   相反,WebContentInterceptor可用于配置缓存   每个URL模式的设置,并接受CacheControl构建器   好。