跳至主要內容
在RestEasy2.x中解决接口重复提交问题

前言

解决此问题的初衷在于生产上的一个保存接口问题,这个接口逻辑比较多耗时长,大约在30s左右。前端做了当前页面按钮的重复点击限制,但是由于接口耗时太长点击按钮后一直在加载中,可能用户就等不及了页面返回了上一步操作,然后又进入这个页面进行保存操作,这样用户多次点击了保存按钮。这就造成了第一次请求还未处理完就又有相同的第二次请求甚至多次请求,导致接口中某个环节数据处理异常。需要解决的问题就是要让第一次请求还没处理完成时不允许第二次请求!

解决方案

通过在网上寻找解决方案,最终发现以下几种解决方式:

1.加锁 (是最简单的实现方式,但是性能堪忧,而且会阻塞请求)


ycyin大约 4 分钟Web技术&安全resteasy重复提交
通过resteasy发布RESTful接口

开发环境

  • IntelliJ IDEA 2020.3.2
  • org.jboss.resteasy 4.6.0.Final
  • JDK1.8
  • Tomcat 9.0.37

在此之前,你可能听过Spring 3中的REST特性或者用过它开发过HTML Web应用。有必要指出JAX-RS的目标是Web Services开发(这与HTML Web应用不同)而Spring MVC的目标则是Web应用开发。Spring 3为Web应用与Web Services增加了广泛的REST支持。

要说明的第二点是我们将要讨论的REST特性是Spring Framework的一部分,也是现有的Spring MVC编程模型的延续,因此,并没有所谓的“Spring REST framework”这种概念,有的只是Spring和Spring MVC。这意味着如果你有一个Spring应用的话,你既可以使用Spring MVC创建HTML Web层,也可以创建RESTful Web Services层。


ycyin大约 5 分钟Web技术&安全resteasyRESTful