From c99b9262a8ec9f826684c70fb4fce68ca85ceaab Mon Sep 17 00:00:00 2001 From: 疯狂的狮子li <15040126243@163.com> Date: 星期六, 18 九月 2021 18:05:50 +0800 Subject: [PATCH] update 优化aop写法 使用spring自动注入注解参数 --- ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/RateLimiterAspect.java | 26 ++------------------------ 1 files changed, 2 insertions(+), 24 deletions(-) diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/RateLimiterAspect.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/RateLimiterAspect.java index 93502c0..3154fa2 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/RateLimiterAspect.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/RateLimiterAspect.java @@ -7,10 +7,8 @@ import com.ruoyi.common.utils.ServletUtils; import lombok.extern.slf4j.Slf4j; import org.aspectj.lang.JoinPoint; -import org.aspectj.lang.Signature; import org.aspectj.lang.annotation.Aspect; import org.aspectj.lang.annotation.Before; -import org.aspectj.lang.annotation.Pointcut; import org.aspectj.lang.reflect.MethodSignature; import org.redisson.api.RateType; import org.springframework.stereotype.Component; @@ -27,14 +25,8 @@ @Component public class RateLimiterAspect { - // 閰嶇疆缁囧叆鐐� - @Pointcut("@annotation(com.ruoyi.common.annotation.RateLimiter)") - public void rateLimiterPointCut() { - } - - @Before("rateLimiterPointCut()") - public void doBefore(JoinPoint point) throws Throwable { - RateLimiter rateLimiter = getAnnotationRateLimiter(point); + @Before("@annotation(rateLimiter)") + public void doBefore(JoinPoint point, RateLimiter rateLimiter) throws Throwable { int time = rateLimiter.time(); int count = rateLimiter.count(); String combineKey = getCombineKey(rateLimiter, point); @@ -53,20 +45,6 @@ } catch (Exception e) { throw new RuntimeException("鏈嶅姟鍣ㄩ檺娴佸紓甯革紝璇风◢鍚庡啀璇�"); } - } - - /** - * 鏄惁瀛樺湪娉ㄨВ锛屽鏋滃瓨鍦ㄥ氨鑾峰彇 - */ - private RateLimiter getAnnotationRateLimiter(JoinPoint joinPoint) { - Signature signature = joinPoint.getSignature(); - MethodSignature methodSignature = (MethodSignature) signature; - Method method = methodSignature.getMethod(); - - if (method != null) { - return method.getAnnotation(RateLimiter.class); - } - return null; } public String getCombineKey(RateLimiter rateLimiter, JoinPoint point) { -- Gitblit v1.9.3