From 428a6ed71b6cb571585f69fd6f4ac6868c5d7ab8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=96=AF=E7=8B=82=E7=9A=84=E7=8B=AE=E5=AD=90li?= <15040126243@163.com> Date: Fri, 4 Jun 2021 16:46:28 +0800 Subject: [PATCH] =?UTF-8?q?update=20=E4=BC=98=E5=8C=96=20=E9=94=81?= =?UTF-8?q?=E5=88=87=E9=9D=A2=E4=BB=A3=E7=A0=81=20key=E5=88=B0=E5=B8=B8?= =?UTF-8?q?=E9=87=8F=E7=B1=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/ruoyi/common/constant/Constants.java | 7 ++++++- .../ruoyi/framework/aspectj/RedisLockAspect.java | 13 +++++-------- 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/constant/Constants.java b/ruoyi-common/src/main/java/com/ruoyi/common/constant/Constants.java index 53429199..137969a8 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/constant/Constants.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/constant/Constants.java @@ -2,7 +2,7 @@ package com.ruoyi.common.constant; /** * 通用常量信息 - * + * * @author ruoyi */ public class Constants @@ -126,4 +126,9 @@ public class Constants * 资源映射路径 前缀 */ public static final String RESOURCE_PREFIX = "/profile"; + + /** + * 资源映射路径 前缀 + */ + public static final String REDIS_LOCK_KEY = "redis_lock:"; } diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/RedisLockAspect.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/RedisLockAspect.java index 0ff695f8..0af3844f 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/RedisLockAspect.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/RedisLockAspect.java @@ -2,6 +2,7 @@ package com.ruoyi.framework.aspectj; import com.ruoyi.common.annotation.RedisLock; +import com.ruoyi.common.constant.Constants; import lombok.extern.slf4j.Slf4j; import org.aspectj.lang.ProceedingJoinPoint; import org.aspectj.lang.annotation.Around; @@ -34,8 +35,6 @@ public class RedisLockAspect { @Autowired private RedissonClient redissonClient; - private static final String LOCK_TITLE = "RedisLock_"; - @Pointcut("@annotation(com.ruoyi.common.annotation.RedisLock)") public void annotationPointcut() { } @@ -67,6 +66,8 @@ public class RedisLockAspect { throw new RuntimeException("redis分布式锁注解参数异常", e); } + // 声明锁名称 + key = Constants.REDIS_LOCK_KEY + key; Object res; try { if (acquire(key, expireTime, TimeUnit.SECONDS)) { @@ -136,8 +137,6 @@ public class RedisLockAspect { * 加锁(RLock)带超时时间的 */ private boolean acquire(String key, long expire, TimeUnit expireUnit) { - //声明key对象 - key = LOCK_TITLE + key; try { //获取锁对象 RLock mylock = redissonClient.getLock(key); @@ -155,13 +154,11 @@ public class RedisLockAspect { * 锁的释放 */ private void release(String lockName) { - //必须是和加锁时的同一个key - String key = LOCK_TITLE + lockName; //获取所对象 - RLock mylock = redissonClient.getLock(key); + RLock mylock = redissonClient.getLock(lockName); //释放锁(解锁) mylock.unlock(); - log.info("unlock => key : " + key + " , ThreadName : " + Thread.currentThread().getName()); + log.info("unlock => key : " + lockName + " , ThreadName : " + Thread.currentThread().getName()); } }