[关闭]
@kangwg 2017-03-15T19:40:56.000000Z 字数 443 阅读 638

防重复处理


1.后台业务处理
锁加在service层,每个业务必须在单独的方法中,对每个业务单独加锁,
锁里面不能嵌套锁

  1. try (LyLock lylock = this.sysService.lock(type,id)) {
  2. if(重复){
  3. throw new CustomBizException(ApiCodeEnum.EXIST, msg);
  4. }
  5. }

2.创建数据
步骤:
1)前端对需要创建数据的接口传唯一令牌,用户多次点击提交所传的令牌是一样的(可以根据token和时间戳来确认)
2)后台拿到这个令牌,将令牌放在redis中,下次再来时对令牌进行校验。

  1. String value = Long.parase(redis.get(str))
  2. if(value!=null&&System.currentTimeMillis()<value+1000){
  3. throw new CustomBizException(ApiCodeEnum.EXIST, msg);
  4. }

3)令牌的校验将以注解的形式实现,后台在control层中加注解即可

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注