来自HTTP条件请求,简单地说,受益于Etag和If- *,我们可以实现响应缓存(Etag + If-None-Match)和乐观锁定(Etag + If-Match)。
正如我所见,使用Spring执行响应缓存很方便,它提供特定的文件管理器 ShallowEtagHeaderFilter 来生成Etag值并检查If-None-Match标头。但是,我在Spring中找不到相应的组件做乐观锁。因此,我如何在Spring中实现它?
答案 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()
}