Spring对If-Match标题

时间:2016-12-22 08:09:16

标签: spring etag

来自HTTP条件请求,简单地说,受益于Etag和If- *,我们可以实现响应缓存(Etag + If-None-Match)和乐观锁定(Etag + If-Match)。

正如我所见,使用Spring执行响应缓存很方便,它提供特定的文件管理器 ShallowEtagHeaderFilter 来生成Etag值并检查If-None-Match标头。但是,我在Spring中找不到相应的组件做乐观锁。因此,我如何在Spring中实现它?

1 个答案:

答案 0 :(得分:0)

我有同样的问题。在Spring中找不到任何本地方法来检查它。但是您始终可以提取标题并进行手动比较。例如(在Kotlin中):

@PutMapping
fun update(         
        @RequestHeader("If-Match") ifMatch: String?
) : ResponseEntity<Void>{

    if(ifMatch != null && ifMatch.trim() != computeETag()){
        return ResponseEntity.status(412).build()
    }