All Downloads are FREE. Search and download functionalities are using the official Maven repository.

fun.tusi.limit.annotation.LimitCat Maven / Gradle / Ivy

package fun.tusi.limit.annotation;

import java.lang.annotation.*;

/**
 * 业务频率注解
 * @author xy783
 */
@Target({ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@Inherited
@Repeatable(LimitCats.class)
public @interface LimitCat {

    /**
     * 频率场景,默认为方法名
     * @return
     */
    String scene() default "";

    /**
     * 频率 key(支持SpEL)
     * @return
     */
    String key() default "";

    /**
     * 指定的 RuntimeException 下执行频率计数
     * @return
     */
    Class[] triggerFor() default {};

    /**
     * 异常标记 字段(默认为code)
     * @return
     */
    String triggerForCodeField() default "code";

    /**
     * 指定的 Exception 且 异常标记(code、errcode、status等)满足等情况下执行频率计数
     * @return
     */
    String[] triggerForCode() default {};

    /**
     * 频率规则(使用代码指定,优先级最高)
     * @return
     */
    LimitCatRule[] rules() default {};
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy