在REST API上,我想创建一个清除特定缓存的终结点:
DELETE /cache/{cacheName}
是否可以代替以下方式实现它:
public void clearCache(String cacheName) {
cacheManager.getCache(cacheName).clear();
}
像这样吗?
@CacheRemoveAll
public void clearCache(String cacheName) {}
因此,我避免注入CacheManager
。
答案 0 :(得分:0)
不幸的是,没有。
注释不能与动态对象一起配置,只能使用常量。因此,无法将路径参数cacheName
传递给@CacheRemoveAll
注释。只有事先知道所有缓存名称,您才能这样做–通过为每个缓存创建DELETE端点,例如:
@CacheRemoveAll(cacheName="cache-1")
public void clearCache1(){}
@CacheRemoveAll(cacheName="cache-2")
public void clearCache2(){}