Spring AOP开发服务端防重复提交功能

7 篇文章 1 订阅

我们在网页上点击按钮的时候由于网速等等的原因,可能会出现多次点击同一个按钮的情况,如果没有防重复提交功能就会导致数据库数据重复问题。客户端防重复提交经常使用一个变量判断数据提交过程,在提交过程中会让按钮不可点击来防重复提交。今天我就来介绍一下服务端是如何实现防重复提交功能的。

这里我的防重复提交功能需要使用到redis,所以你需要提前安装个redis软件。

我们只需要创建两个类,一个自定义注解(AvoidRepeatSubmit)和一个切面拦截实现类(AvoidRepeatSubmitAspect),如下

自定义注解的实现:

这里指定该注解的使用范围只有方法(@Target),运行周期为程序运行中(@Retention).

AvoidRepeatSubmitAspect类实现:

我们要先声名该类是一个切面类@Aspect,然后指定切入点的注解。

然后在该注解被使用的时候调用防重复的验证方法,

我们使用请求的uri+sessionId拼接成key,并判断redis该key是否存在,如果不存在就将该key存入redis,设置过期时间为两秒。

如果该key存在就在response中写入重复提交的提示并返回。

使用防重复提交功能。

直接在接口方法中添加防重复提交的自定义注解就可以使用防重复提交功能了,如下图所示。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

现场喷口水

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值