package org.example.Entity;

import org.springframework.cache.annotation.Cacheable;
import org.springframework.core.annotation.AliasFor;

import java.lang.annotation.*;

/**
 * 模拟C#的[Cache]注解（基于Spring Cache封装）
 */
@Target({ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Cacheable
public @interface Cache {
    /**
     * 缓存过期时间（单位：分钟，仅标记，实际需结合缓存管理器配置）
     */
    int ExpirationPeriod() default 10;

    /**
     * 缓存key（复用Spring Cache的key属性）
     */
    @AliasFor(annotation = Cacheable.class, attribute = "key")
    String key() default "";

    /**
     * 缓存名称（复用Spring Cache的value属性）
     */
    @AliasFor(annotation = Cacheable.class, attribute = "value")
    String[] value() default {"printCache"};
}