在上周发布的Tienchin Project视频中,我互相梳理了六种功率解决方案。性处理(例如接口功率)是一个非常普遍的需求,我们实际上会在许多项目中遇到。
实际上,有很多实施解决方案,例如采摘能力。我在这里与我的朋友分享两个共同的解决方案。
基于令牌的解决方案的实现非常简单。整个过程分为两个步骤:
总体想法是上述。当然,具体的实现将更加复杂。有很多细节要注意它。Song Brother还以前还录制了该方案的视频。基于拦截器处理,也有基于AOP的处理:
基于拦截器处理(视频1):
基于AOP切割表面处理(视频2):
最近,Tienchin项目中使用了另一种解决方案。根据请求参数对该方案进行判断。如果在同一接口中的同一接口中接收到的请求参数是相同的,则认为这是重复的请求,拒绝拒绝进行拒绝大致是这样的想法。
与第一个解决方案相比,第二个解决方案相对较随意,因为只有一个请求,并且无需访问服务器即可获取令牌。。
因此,今天我将与您讨论第二个解决方案的实现,并在Tienchin Project Video中与您交谈。
首先,我们创建了一个新的Spring Boot项目,以引入Web和Redis依赖关系。新结构完成后,让我们首先配置Redis的基本信息,如下:
为了方便后续的REDIS操作,让我们在Redis上制作一个简单的软件包,如下:
这是相对简单的,一个存款数据,一个读取数据。
接下来,我们自定义注释。在需要用电源处理的接口上,添加注释。将来,该界面将自动执行性处理。
我们通过拦截器分析的注释,分析法规如下:
该拦截器是一个抽象类,可拦截接口方法,然后在接口上找到注释。呼叫方法用于确定它是否是重复提交的数据。此方法是这里的抽象方法。我们需要从中定义另一个类的继承。在新子类中,抽象类具有不同的性判断逻辑。在这里,我们基于URL地址+参数,以确定是否满足了诸如权力之类的性状况:
让我们看一下特定的实现逻辑:
好吧,完成所有这些操作后,最后,让我们再次配置拦截器:
通过这种方式,我们可以处理我们的接口功率?在需要时,我们可以直接在接口上使用它:
好吧,公共帐户背景回复了重复要求下载本文的源代码。
原始:https://juejin.cn/post/7111247671070982157