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

net.jahhan.cache.annotation.Cache Maven / Gradle / Ivy

package net.jahhan.cache.annotation;

import net.jahhan.cache.annotation.enumeration.FastBackEnum;

import java.lang.annotation.*;
import java.util.concurrent.TimeUnit;

@Target(ElementType.METHOD)
@Inherited
@Retention(RetentionPolicy.RUNTIME)
public @interface Cache {

	/**是否快速失败*/
	public boolean fastBackFail() default false;

	/**限制时间,即多少时间内快速返回失败,默认值:1,默认时间单位:TimeUnit.SECONDS*/
	public int blockTime() default 1;

	/**blockTime的时间单位,默认时间单位:TimeUnit.SECONDS*/
	public TimeUnit blockTimeUnit() default TimeUnit.SECONDS;

	public FastBackEnum fastBackType() default FastBackEnum.ALL;

	/**快速失败返回的消息,默认:快速返回失败*/
	public String fastBackFailMessage() default "快速返回失败";

	/**
	 * 是否自定义key,只针对快速返回和快速失败有效,默认值:false
	 */
	public boolean isCustomCacheKey() default false;

	/** 参数序号数组,会取对应的参数值的字符串组成自定义缓存key
	 * (1)isCustomCacheKey值为true时,该字段配置才有效
	 * (2)没有配置值时不会取对应的参数值的字符串组成自定义缓存key,即对调用该接口的所有请求都生效
	 * */
	public int[] argumentIndexNumbers() default {};

	/**
	 * 自定义key的创建类,返回的值作为自定义缓存key的一部分,
	 * 配置的Class必须实现CustomCacheKeyCreater接口,否则配置无效,忽略该配置
	 * 有指定该类的话会忽略argumentIndexNumbers配置,若创建的key为null则该配置无效,将忽略该配置
	 */
	public Class customCacheKeyCreaterClass() default void.class;
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy