我有一个方法的执行者应该清除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();
    }
}

10-04 14:08