# Limiter **Repository Path**: XhyQAQ/limiter ## Basic Information - **Project Name**: Limiter - **Description**: SpringBoot+AOP+注解形式实现高拓展限流组件。 - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 9 - **Forks**: 3 - **Created**: 2023-03-09 - **Last Updated**: 2024-02-27 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Limit ## 介绍 如果需要对项目中某一个具体的接口进行限流并且不同的限流方式以及拓展性来说,该项目是你可以参考的点。 ## 项目视频地址 b站:https://www.bilibili.com/video/BV1p84y1N7aW/ ## 使用 在LimiterDTO中定制化具体限流实现参数 ![输入图片说明](src/img/img1.png) 在LimiterConfig中配置LimiterHandler的具体限流实现类 ![输入图片说明](src/img/1678900612546.jpg) ## 使用2(看这) 已将项目改为Spring-Boot-starter 1.mvn install 2.引入依赖 ```java com.xhystudy-limiter xhy-limit-spring-boot-starter 1.0.0-SNAPSHOT ``` 3.创建具体限流bean ```java @Bean public LimiterHandler limiterHandler(){ // return new LimiterHandler(CounterByUserLimiter.getInstance()); // return new LimiterHandler(new CounterLimiter()); 构造器中需要引入redis // return new LimiterHandler(new FunnelLimiter()); // return new LimiterHandler(new SlideWindowsLimiter()); 构造器中需要引入redis // return new LimiterHandler(TokenBucketLimiter.getInstance()); } ``` 4.在统一异常拦截中拦截 ```java @ExceptionHandler(InterceptException.class) public R doInterceptException(InterceptException e){ e.printStackTrace(); return R.error().message(e.getMsg()); } ```