Commit 8d88ed7c authored by 杨锐's avatar 杨锐

redis分布式锁,处理/user/center/save/userExtInfo并发问题,导致MySQLIntegrityConstraintViolationException

parent 591f2fb4
package cn.quantgroup.xyqb.util.lock.redislock;
package cn.quantgroup.xyqb.aspect.lock;
import java.lang.annotation.*;
......
package cn.quantgroup.xyqb.util.lock.redislock;
package cn.quantgroup.xyqb.aspect.lock;
import cn.quantgroup.xyqb.exception.ResubmissionException;
import com.alibaba.fastjson.JSONObject;
import org.apache.commons.codec.digest.DigestUtils;
import org.apache.commons.lang3.StringUtils;
......@@ -33,7 +34,7 @@ public class RedisLockAspect {
@Qualifier("stringRedisTemplate")
private RedisTemplate<String, String> stringRedisTemplate;
@Pointcut("@annotation(cn.quantgroup.xyqb.util.lock.redislock.RedisLock)")
@Pointcut("@annotation(cn.quantgroup.xyqb.aspect.lock.RedisLock)")
private void redisLockPointCut() {
}
......@@ -79,7 +80,7 @@ public class RedisLockAspect {
return pjp.proceed();
}
}
cn.quantgroup.xyqb.util.lock.RedisLock lock = new cn.quantgroup.xyqb.util.lock.RedisLock(stringRedisTemplate, lockKey, timeout, expire);
cn.quantgroup.xyqb.util.RedisLock lock = new cn.quantgroup.xyqb.util.RedisLock(stringRedisTemplate, lockKey, timeout, expire);
try {
if (lock.lock()) {
return pjp.proceed();
......
......@@ -3,7 +3,7 @@ package cn.quantgroup.xyqb.controller;
import cn.quantgroup.xyqb.exception.*;
import cn.quantgroup.xyqb.model.JsonResult;
import cn.quantgroup.xyqb.util.IpUtil;
import cn.quantgroup.xyqb.util.lock.redislock.ResubmissionException;
import cn.quantgroup.xyqb.exception.ResubmissionException;
import lombok.extern.slf4j.Slf4j;
import org.springframework.http.HttpStatus;
import org.springframework.jdbc.BadSqlGrammarException;
......
......@@ -9,15 +9,13 @@ import cn.quantgroup.xyqb.aspect.limit.PasswordFreeAccessValidator;
import cn.quantgroup.xyqb.entity.*;
import cn.quantgroup.xyqb.model.JsonResult;
import cn.quantgroup.xyqb.service.user.*;
import cn.quantgroup.xyqb.util.lock.redislock.RedisLock;
import cn.quantgroup.xyqb.aspect.lock.RedisLock;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.TypeReference;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
......
package cn.quantgroup.xyqb.util.lock;
package cn.quantgroup.xyqb.util;
import org.apache.commons.text.RandomStringGenerator;
import org.springframework.dao.InvalidDataAccessResourceUsageException;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment