去旅游、自由行、旅游攻略、西藏旅游、旅游资讯、旅游线路、旅游景点、旅游景点门票、一个做介绍旅游资讯和旅游景点的博客

java 使用注解+Aop+redis实现防止重复提交

未命名 2935℃ 0

防止重复提交的方式有很多

  可以用数据库的唯一索引,保证数据完整性

  在业务层用select....for update,依然是使用数据库的事务来做的

  使用注解+拦截器 HandlerIntercetper+redis

  我这里使用注解+aop+redis。

1、注解

@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)public @interface Resubmit {    int interval() default 5; // s 单位为秒,x秒内防止重复提交}

2、切面实现,

复制代码
    String CACHE_KEY = "resubmit:"= "@annotation(resubmit)" Object around(ProceedingJoinPoint point, Resubmit resubmit) ==== === CACHE_KEY + username + request.getMethod() +===  BizException("请勿重复提交"
复制代码

3、使用

    @PutMapping
    @Resubmit    public JsonResult<Boolean> save(@Validated @RequestBody EnterpriseRecheckEditRequest request){        return JsonResult.success(enterpriseRecheckService.add(request));
    }

对比是否是同一数据重复提交,判断方式还可以加入请求参数

标签: java

评论留言

暂时没有留言!

我要留言

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。