弹簧靴 |创建自定义缓存注释和实现



我想创建一个自定义的 Spring @Cachable注释,我可以在其中定义以秒为单位的过期时间。 问题是,我不知道如何在自定义注释中实现新方法"expiresInSec()"。

这是我的自定义@Cachable注释:

@Retention(RetentionPolicy.RUNTIME)
@Target(
{ElementType.TYPE, ElementType.METHOD})
public @interface Cachable
{
Cacheable cachable();
// cache entry expires in 1 hour by default
int expiresInSec() default 3600;
}

这是自定义注释的调用:

@Cachable(cachable = @Cacheable("WorkListRepository::getWorkList"), expiresInSec = 60)

但是过期参数不起作用。我必须实现此参数方法的地方。

谢谢

扩展 SpringCacheable需要的不仅仅是在注释中添加额外的属性。您还需要扩展注释处理器的功能,以便在 Spring 中进行缓存。查看此处以获取有关所需内容的更多详细信息。

弹簧缓存是一个抽象,需要一个缓存提供程序,通常到期时间是在缓存级别设置的(例如,Ehcache的每个缓存都有timeToLiveSeconds参数)

最新更新