使用Redisson及SpringBoot Starter实现的一款放重放小工具

使用Redisson实现的一款放重放小工具

Github: limiter-spring-boot-starter

@Target({ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface WebLimiter {

    /**
     * 后到达的请求默认处理策略
     *
     * @return
     */
    AccessEnum access() default AccessEnum.DENY;

    /**
     * 用于判断相同请求的标识
     *
     * @return
     */
    UniqueEnum unique() default UniqueEnum.METHOD_PARAM;

    /**
     * response处理器
     *
     * @return
     */
    Class<? extends IResponseHandler> handler() default DefaultResponseHandler.class;

    /**
     * 限制时长
     *
     * @return
     */
    int expire() default 1;

    /**
     * 单位
     *
     * @return
     */
    TimeUnit timeunit() default TimeUnit.SECONDS;

}

使用方式

limiter-spring-boot-starter

使用springboot和redisson实现的web api放重放锁

处理模式

拒绝、排队

判断唯一请求标识

header、param

可自定义响应数据

使用方式

应用依赖redis

spring.redis.host = xxxx
spring.redis.port = xxx
spring.redis.password = xxx
spring.redis.database = 2

如果应用未配置redissonClient则会默认注入一个

  1. 引入stater
<dependency>
    <groupId>cn.fire.limiter</groupId>
    <artifactId>limiter-spring-boot-starter</artifactId>
</dependency>
  1. 在需要控制的控制器上加入注解,支持方法和类级别
@WebLimiter(expire = 2, timeunit = TimeUnit.SECONDS, handler = DefaultResponseHandler.class, unique = UniqueEnum.HEADER, access = AccessEnum.DENY)
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容