gpt4 book ai didi

java - 如何使用 JCache 注释 @CacheRemoveAll 清除多个缓存?

转载 作者:搜寻专家 更新时间:2023-11-01 03:31:31 26 4
gpt4 key购买 nike

在我的 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 注释,但框架并未计划这样做。

您最好的解决方案是在 methodToBeCalled 开始时为您的两个缓存调用 removeAll

代码是这样的:

public class MyClass {
@Autowired
private CacheManager cacheManager; // this is a Spring CacheManager

public void methodToBeCalled(){
cacheManager.getCache("cache1").clear();
cacheManager.getCache("cache2").clear();
}
}

关于java - 如何使用 JCache 注释 @CacheRemoveAll 清除多个缓存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51908493/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com