我打算为我的RESTfull Spring应用程序支持ETag.我公开的大多数资源都是在DB中进行版本控制的.

我知道ShallowEtagHeaderFilter,这不是我需要的,因为它只能节省带宽.

是否有一个适用于Spring MVC的生产就绪解决方案,它将ETag标头与暴露的实体版本相关联?

解决方法

spring-data-rest支持这种开箱即用的功能,参见 the conditional request part of the reference documentation.

您还可以使用Spring Framework 4.2.0,它支持Controller方法返回的ResponseEntity类型的条件请求 – see reference documentation.

就像是:

@RequestMapping("/book/{id}")
public ResponseEntity<Book> showBook(@PathVariable Long id) {

    Book book = findBook(id);
    String version = book.getVersion();

    return ResponseEntity
                .ok()
                .cacheControl(CacheControl.maxAge(30,TimeUnit.DAYS))
                .eTag(version) // lastModified is also available
                .body(book);
}

java – 用于版本化实体的ETag支持的更多相关文章

  1. Azure表存储-TableClient未返回ETag

    我的实体根据需要继承ITableEntity,因此具有ETag属性。任何想法都非常感谢。

  2. java – 用于版本化实体的ETag支持

    我打算为我的RESTfullSpring应用程序支持ETag.我公开的大多数资源都是在DB中进行版本控制的.我知道ShallowEtagHeaderFilter,这不是我需要的,因为它只能节省带宽.是否有一个适用于SpringMVC的生产就绪解决方案,它将ETag标头与暴露的实体版本相关联?解决方法spring-data-rest支持这种开箱即用的功能,参见theconditionalreques

  3. c# – 如果图像较新,如何从HTTP下载图像?

    我想实现以下功能:>C#客户端连接到HTTP服务器并将映像下载到磁盘.>下次客户端开始检查服务器上的映像是否比磁盘上的映像更新,在这种情况下,客户端会覆盖磁盘上的映像.对我来说,下载图像很容易,但我不知道如何检查服务器上的图像是否更新.我怎么能实现它?

  4. javascript – 我可以依靠ETag进行缓存控制

    我们当前的部署使用归属构建缓存清除方法:我们的映射文件包含我们的javascript文件的哈希值(此映射是在应用程序启动时创建的).然后在我们的模板中使用该文件中的值来生成脚本标记,该脚本标记包括用于缓存清除的GET参数,即我目前正在将整个页面转换为使用RequireJS,我想摆脱这些缓存破坏参数,因为它们很难实现.

  5. jQuery源代码中定义的jQuery.ajax在哪里?

    我正在尝试找到源代码中定义jQuery.ajax()的位置.但是,使用grep似乎不起作用.它在哪里?

  6. java – 在Spring MVC REST中的ETag处理

    我正在考虑从ApacheCXFRS与JAXRS切换到SpringMVCREST,并查看SpringMVCREST当前正在处理ETag的方式的一些问题.也许我不明白,还是有更好的方式来实现JAXRS目前正在做的工作?>是否有更好的方式构建ETag字符串?

随机推荐

  1. 基于EJB技术的商务预订系统的开发

    用EJB结构开发的应用程序是可伸缩的、事务型的、多用户安全的。总的来说,EJB是一个组件事务监控的标准服务器端的组件模型。基于EJB技术的系统结构模型EJB结构是一个服务端组件结构,是一个层次性结构,其结构模型如图1所示。图2:商务预订系统的构架EntityBean是为了现实世界的对象建造的模型,这些对象通常是数据库的一些持久记录。

  2. Java利用POI实现导入导出Excel表格

    这篇文章主要为大家详细介绍了Java利用POI实现导入导出Excel表格,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  3. Mybatis分页插件PageHelper手写实现示例

    这篇文章主要为大家介绍了Mybatis分页插件PageHelper手写实现示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

  4. (jsp/html)网页上嵌入播放器(常用播放器代码整理)

    网页上嵌入播放器,只要在HTML上添加以上代码就OK了,下面整理了一些常用的播放器代码,总有一款适合你,感兴趣的朋友可以参考下哈,希望对你有所帮助

  5. Java 阻塞队列BlockingQueue详解

    本文详细介绍了BlockingQueue家庭中的所有成员,包括他们各自的功能以及常见使用场景,通过实例代码介绍了Java 阻塞队列BlockingQueue的相关知识,需要的朋友可以参考下

  6. Java异常Exception详细讲解

    异常就是不正常,比如当我们身体出现了异常我们会根据身体情况选择喝开水、吃药、看病、等 异常处理方法。 java异常处理机制是我们java语言使用异常处理机制为程序提供了错误处理的能力,程序出现的错误,程序可以安全的退出,以保证程序正常的运行等

  7. Java Bean 作用域及它的几种类型介绍

    这篇文章主要介绍了Java Bean作用域及它的几种类型介绍,Spring框架作为一个管理Bean的IoC容器,那么Bean自然是Spring中的重要资源了,那Bean的作用域又是什么,接下来我们一起进入文章详细学习吧

  8. 面试突击之跨域问题的解决方案详解

    跨域问题本质是浏览器的一种保护机制,它的初衷是为了保证用户的安全,防止恶意网站窃取数据。那怎么解决这个问题呢?接下来我们一起来看

  9. Mybatis-Plus接口BaseMapper与Services使用详解

    这篇文章主要为大家介绍了Mybatis-Plus接口BaseMapper与Services使用详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

  10. mybatis-plus雪花算法增强idworker的实现

    今天聊聊在mybatis-plus中引入分布式ID生成框架idworker,进一步增强实现生成分布式唯一ID,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

返回
顶部