From 5c0551c5f9de613de0458f6064d501caf99ef127 Mon Sep 17 00:00:00 2001 From: zhongjiahua <3u6IKJYVS3U#qhr2> Date: Sun, 19 Dec 2021 11:20:45 +0800 Subject: [PATCH] =?UTF-8?q?=E9=99=90=E6=B5=81=E4=B8=8E=E5=88=86=E5=B8=83?= =?UTF-8?q?=E5=BC=8F=E9=94=81=E6=A8=A1=E5=9D=97key=E7=94=9F=E6=88=90?= =?UTF-8?q?=E7=AD=96=E7=95=A5=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/aizuda/limiter/example/TestController.java | 6 +++--- .../limiter/example/UserRateLimitStrategy.java | 12 +++++++----- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/aizuda-limiter-example/src/main/java/com/aizuda/limiter/example/TestController.java b/aizuda-limiter-example/src/main/java/com/aizuda/limiter/example/TestController.java index c86f156..edb7cbc 100644 --- a/aizuda-limiter-example/src/main/java/com/aizuda/limiter/example/TestController.java +++ b/aizuda-limiter-example/src/main/java/com/aizuda/limiter/example/TestController.java @@ -1,6 +1,7 @@ package com.aizuda.limiter.example; import com.aizuda.limiter.annotation.RateLimit; +import com.aizuda.limiter.strategy.IpKeyGenerateStrategy; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; @@ -11,9 +12,8 @@ public class TestController { * 限流 *

* 测试多次访问观察浏览器及控制台输出日志 - * + *

* http://localhost:8080/test?name=abc - * */ @GetMapping("/test") @RateLimit( @@ -24,7 +24,7 @@ public class TestController { // 限制间隔时长(可无,默认 3 分钟)例如 5s 五秒,6m 六分钟,7h 七小时,8d 八天 interval = "100s", // 策略(可无) ip 为获取当前访问IP地址(内置策略),自定义策略 user 为获取当前用户 - strategy = { "ip", "user" }, + strategy = {IpKeyGenerateStrategy.TYPE, UserRateLimitStrategy.TYPE}, // 提示消息(可无) message = "请勿频繁操作" ) diff --git a/aizuda-limiter-example/src/main/java/com/aizuda/limiter/example/UserRateLimitStrategy.java b/aizuda-limiter-example/src/main/java/com/aizuda/limiter/example/UserRateLimitStrategy.java index efbc366..d389dd1 100644 --- a/aizuda-limiter-example/src/main/java/com/aizuda/limiter/example/UserRateLimitStrategy.java +++ b/aizuda-limiter-example/src/main/java/com/aizuda/limiter/example/UserRateLimitStrategy.java @@ -1,20 +1,22 @@ package com.aizuda.limiter.example; -import com.aizuda.limiter.strategy.IRateLimitStrategy; +import com.aizuda.limiter.metadata.MethodMetadata; +import com.aizuda.limiter.strategy.IKeyGenerateStrategy; import org.springframework.stereotype.Component; @Component -public class UserRateLimitStrategy implements IRateLimitStrategy { +public class UserRateLimitStrategy implements IKeyGenerateStrategy { + public final static String TYPE = "user"; + @Override public String getType() { // 请保证唯一性 - return "user"; + return TYPE; } @Override - public String getKey() { - // 返回当前登录用户 admin + public String getKey(MethodMetadata methodMetadata, String parseKey) { return "admin"; } } -- Gitee