本文主要是介绍java接口防重复提交简单有效的解决方案,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
场景:
在实际业务场景中,有些关键接口不允许重复多次提交,例如订单提交、xx发布等接口,一旦重复提交可能会导致很多问题,此时就要做接口防重提限制。下面介绍一个简单的方案
一、创建防重提专用的注解
@Target(value = {ElementType.METHOD, ElementType.TYPE})
@Retention(value = RetentionPolicy.RUNTIME)
public @interface AccessLimit {//key前缀String keyPrefix() default "avoid_repeat_submit";//允许请求上限数量int maxCount() default 1;//过期时间int expireTime() default 3;//过期单位TimeUnit timeUnit() default TimeUnit.SECONDS;}
二、创建切面类,拦截处理校验
1、实现思路,首次请求则设置缓存标识并标记次数为1,随后每次请求只要没达到上限限制数量,则标记次数增量+1,达到上限次数则报错提示
2、代码示例
@Slf4j
@Component
@Aspect
public class AccessLimitAspect {@Resourceprivate RedisTemplate<String, Object> redisTemplate;@Poin
这篇关于java接口防重复提交简单有效的解决方案的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!