package com.jcdm.common.annotation; import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; import com.jcdm.common.constant.CacheConstants; import com.jcdm.common.enums.LimitType; /** * é™æµæ³¨è§£ * * @author jc */ @Target(ElementType.METHOD) @Retention(RetentionPolicy.RUNTIME) @Documented public @interface RateLimiter { /** * é™æµkey */ public String key() default CacheConstants.RATE_LIMIT_KEY; /** * é™æµæ—¶é—´,å•ä½ç§’ */ public int time() default 60; /** * é™æµæ¬¡æ•° */ public int count() default 100; /** * é™æµç±»åž‹ */ public LimitType limitType() default LimitType.DEFAULT; }