使用 JSR-107 注释清除缓存

Clear a cache with JSR-107 annotations

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

DELETE /cache/{cacheName}

是否可以实现它而不是:

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

这样的事情?

@CacheRemoveAll
public void clearCache(String cacheName) {}

所以我避免注入 CacheManager.

很遗憾,没有。

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

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

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