package com.oying.modules.system.rest; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import com.oying.annotation.Limit; import com.oying.annotation.rest.AnonymousGetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import java.util.concurrent.atomic.AtomicInteger; /** * @author Z * 接口限流测试类 */ @RestController @RequestMapping("/api/limit") @Api(tags = "系统:限流测试管理") public class LimitController { private static final AtomicInteger ATOMIC_INTEGER = new AtomicInteger(); /** * 测试限流注解,下面配置说明该接口 60秒内最多只能访问 10次,保存到redis的键名为 limit_test, */ @AnonymousGetMapping @ApiOperation("测试") @Limit(key = "test", period = 60, count = 10, name = "testLimit", prefix = "limit") public int testLimit() { return ATOMIC_INTEGER.incrementAndGet(); } }