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()); } }