首页 > 解决方案 > 使用 JSR-107 注释清除缓存

问题描述

在 REST API 上,我想创建一个清除特定缓存的单个端点:

DELETE /cache/{cacheName}

是否可以实现它而不是:

public void clearCache(String cacheName) {
    cacheManager.getCache(cacheName).clear();
}

像这样的事情?

@CacheRemoveAll
public void clearCache(String cacheName) {}

所以我避免注入CacheManager.

标签: javajcache

解决方案


不幸的是,没有。

注解不能配置动态对象,只能使用常量。所以不可能将路径参数传递cacheName@CacheRemoveAll注释。如果您事先知道所有缓存名称,您只能这样做 - 通过为每个缓存创建一个 DELETE 端点,例如:

@CacheRemoveAll(cacheName="cache-1")
public void clearCache1(){}

@CacheRemoveAll(cacheName="cache-2")
public void clearCache2(){}

推荐阅读