我有一个方法的执行者应该清除Spring + JCache + ehcache 3.5项目中的两个缓存。
我试过了:
@CacheRemoveAll(cacheName = "cache1")
@CacheRemoveAll(cacheName = "cache2")
public void methodToBeCalled(){
}
和
@CacheRemoveAll(cacheName = "cache1", cacheName = "cache2")
public void methodToBeCalled(){
}
首先,我得到:
Duplicate annotation of non-repeatable type @CacheRemoveAll
在第二个中我得到:
Duplicate attribute cacheName in annotation @CacheRemoveAll
最佳答案
你不能注释不能重复,属性也不能重复。
您将需要@CacheRemoveAlls
批注,但框架尚未计划。
最好的解决方案是在removeAll
的开头为两个缓存调用methodToBeCalled
。
代码如下:
public class MyClass {
@Autowired
private CacheManager cacheManager; // this is a Spring CacheManager
public void methodToBeCalled(){
cacheManager.getCache("cache1").clear();
cacheManager.getCache("cache2").clear();
}
}