Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
X
xyqb-user2
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
head_group
xyqb-user2
Commits
8d88ed7c
Commit
8d88ed7c
authored
Feb 10, 2020
by
杨锐
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
redis分布式锁,处理/user/center/save/userExtInfo并发问题,导致MySQLIntegrityConstraintViolationException
parent
591f2fb4
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
9 additions
and
10 deletions
+9
-10
RedisLock.java
src/main/java/cn/quantgroup/xyqb/aspect/lock/RedisLock.java
+1
-1
RedisLockAspect.java
.../java/cn/quantgroup/xyqb/aspect/lock/RedisLockAspect.java
+4
-3
ExceptionHandlingController.java
...antgroup/xyqb/controller/ExceptionHandlingController.java
+1
-1
UserCenterController.java
...controller/internal/user/center/UserCenterController.java
+1
-3
ResubmissionException.java
...a/cn/quantgroup/xyqb/exception/ResubmissionException.java
+1
-1
RedisLock.java
src/main/java/cn/quantgroup/xyqb/util/RedisLock.java
+1
-1
No files found.
src/main/java/cn/quantgroup/xyqb/
util/lock/redis
lock/RedisLock.java
→
src/main/java/cn/quantgroup/xyqb/
aspect/
lock/RedisLock.java
View file @
8d88ed7c
package
cn
.
quantgroup
.
xyqb
.
util
.
lock
.
redis
lock
;
package
cn
.
quantgroup
.
xyqb
.
aspect
.
lock
;
import
java.lang.annotation.*
;
import
java.lang.annotation.*
;
...
...
src/main/java/cn/quantgroup/xyqb/
util/lock/redis
lock/RedisLockAspect.java
→
src/main/java/cn/quantgroup/xyqb/
aspect/
lock/RedisLockAspect.java
View file @
8d88ed7c
package
cn
.
quantgroup
.
xyqb
.
util
.
lock
.
redis
lock
;
package
cn
.
quantgroup
.
xyqb
.
aspect
.
lock
;
import
cn.quantgroup.xyqb.exception.ResubmissionException
;
import
com.alibaba.fastjson.JSONObject
;
import
com.alibaba.fastjson.JSONObject
;
import
org.apache.commons.codec.digest.DigestUtils
;
import
org.apache.commons.codec.digest.DigestUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.apache.commons.lang3.StringUtils
;
...
@@ -33,7 +34,7 @@ public class RedisLockAspect {
...
@@ -33,7 +34,7 @@ public class RedisLockAspect {
@Qualifier
(
"stringRedisTemplate"
)
@Qualifier
(
"stringRedisTemplate"
)
private
RedisTemplate
<
String
,
String
>
stringRedisTemplate
;
private
RedisTemplate
<
String
,
String
>
stringRedisTemplate
;
@Pointcut
(
"@annotation(cn.quantgroup.xyqb.
util.lock.redis
lock.RedisLock)"
)
@Pointcut
(
"@annotation(cn.quantgroup.xyqb.
aspect.
lock.RedisLock)"
)
private
void
redisLockPointCut
()
{
private
void
redisLockPointCut
()
{
}
}
...
@@ -79,7 +80,7 @@ public class RedisLockAspect {
...
@@ -79,7 +80,7 @@ public class RedisLockAspect {
return
pjp
.
proceed
();
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
{
try
{
if
(
lock
.
lock
())
{
if
(
lock
.
lock
())
{
return
pjp
.
proceed
();
return
pjp
.
proceed
();
...
...
src/main/java/cn/quantgroup/xyqb/controller/ExceptionHandlingController.java
View file @
8d88ed7c
...
@@ -3,7 +3,7 @@ package cn.quantgroup.xyqb.controller;
...
@@ -3,7 +3,7 @@ package cn.quantgroup.xyqb.controller;
import
cn.quantgroup.xyqb.exception.*
;
import
cn.quantgroup.xyqb.exception.*
;
import
cn.quantgroup.xyqb.model.JsonResult
;
import
cn.quantgroup.xyqb.model.JsonResult
;
import
cn.quantgroup.xyqb.util.IpUtil
;
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
lombok.extern.slf4j.Slf4j
;
import
org.springframework.http.HttpStatus
;
import
org.springframework.http.HttpStatus
;
import
org.springframework.jdbc.BadSqlGrammarException
;
import
org.springframework.jdbc.BadSqlGrammarException
;
...
...
src/main/java/cn/quantgroup/xyqb/controller/internal/user/center/UserCenterController.java
View file @
8d88ed7c
...
@@ -9,15 +9,13 @@ import cn.quantgroup.xyqb.aspect.limit.PasswordFreeAccessValidator;
...
@@ -9,15 +9,13 @@ import cn.quantgroup.xyqb.aspect.limit.PasswordFreeAccessValidator;
import
cn.quantgroup.xyqb.entity.*
;
import
cn.quantgroup.xyqb.entity.*
;
import
cn.quantgroup.xyqb.model.JsonResult
;
import
cn.quantgroup.xyqb.model.JsonResult
;
import
cn.quantgroup.xyqb.service.user.*
;
import
cn.quantgroup.xyqb.service.user.*
;
import
cn.quantgroup.xyqb.
util.lock.redis
lock.RedisLock
;
import
cn.quantgroup.xyqb.
aspect.
lock.RedisLock
;
import
com.alibaba.fastjson.JSONObject
;
import
com.alibaba.fastjson.JSONObject
;
import
com.alibaba.fastjson.TypeReference
;
import
com.alibaba.fastjson.TypeReference
;
import
io.swagger.annotations.ApiOperation
;
import
io.swagger.annotations.ApiOperation
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.collections.CollectionUtils
;
import
org.apache.commons.collections.CollectionUtils
;
import
org.apache.commons.lang.StringUtils
;
import
org.apache.commons.lang.StringUtils
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
org.springframework.web.bind.annotation.RestController
;
...
...
src/main/java/cn/quantgroup/xyqb/
util/lock/redislock
/ResubmissionException.java
→
src/main/java/cn/quantgroup/xyqb/
exception
/ResubmissionException.java
View file @
8d88ed7c
package
cn
.
quantgroup
.
xyqb
.
util
.
lock
.
redislock
;
package
cn
.
quantgroup
.
xyqb
.
exception
;
/**
/**
* @author Jie.Feng
* @author Jie.Feng
...
...
src/main/java/cn/quantgroup/xyqb/util/
lock/
RedisLock.java
→
src/main/java/cn/quantgroup/xyqb/util/RedisLock.java
View file @
8d88ed7c
package
cn
.
quantgroup
.
xyqb
.
util
.
lock
;
package
cn
.
quantgroup
.
xyqb
.
util
;
import
org.apache.commons.text.RandomStringGenerator
;
import
org.apache.commons.text.RandomStringGenerator
;
import
org.springframework.dao.InvalidDataAccessResourceUsageException
;
import
org.springframework.dao.InvalidDataAccessResourceUsageException
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment