java - 使用 JSR-107 注释清除缓存
问题描述
在 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(){}
推荐阅读
- fortran - 有没有办法从导入的模块中找到使用了哪些过程/类型?
- ios - 在 Swift 中将数组转换为字典
- android - 使用 Firebase Auth 进行身份验证时,短信验证码请求失败
- git - 这个 git 图标在书呆子字体中是什么意思?
- javascript - JS history.pushState 问题“跳过斜线”
- .net-core - 使用 Nullable DateTime 属性反序列化 JSON 会引发 Newtonsoft.Json.JsonReaderException
- apache-kafka - Kafka Streams:使用 Spring Cloud Stream 为每组主题定义多个 Kafka Streams
- c++ - 'cppcoreguidelines-interfaces-global-init' 仅在特定情况下出错
- https - Apache2 作为简单的 https 代理
- kubernetes - 获取 API 组资源失败