在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(){}