37 lines
784 B
Java
37 lines
784 B
Java
package com.imyeyu.spring.annotation;
|
|
|
|
import org.springframework.stereotype.Component;
|
|
|
|
import java.lang.annotation.ElementType;
|
|
import java.lang.annotation.Retention;
|
|
import java.lang.annotation.RetentionPolicy;
|
|
import java.lang.annotation.Target;
|
|
|
|
/**
|
|
* 应用在 Controller 的接口上
|
|
*
|
|
* <p>{@link #lifeCycle()} 生命周期内(秒)限制访问 {@link #value()} 次
|
|
*
|
|
* @author 夜雨
|
|
* @version 2021-08-16 17:57
|
|
*/
|
|
@Target(ElementType.METHOD)
|
|
@Retention(RetentionPolicy.RUNTIME)
|
|
@Component
|
|
public @interface RequestRateLimit {
|
|
|
|
/**
|
|
* 生命周期内访问限制,默认 10 秒内 10 次
|
|
*
|
|
* @return 生命周期内限制访问次数
|
|
*/
|
|
int value() default 10;
|
|
|
|
/**
|
|
* 生命周期
|
|
*
|
|
* @return 生命周期秒数
|
|
*/
|
|
int lifeCycle() default 10;
|
|
}
|