java - 如何在没有方法参数的方法上使用 @cacheable 注释的键

标签 java spring caching ehcache spring-cache

我有一个缓存方法和一个缓存逐出方法我想使用缓存键属性来访问缓存,如何强制或锁定调用此方法的人使用相同的键。

我试过类似的方法,但似乎不对。方法参数 (cachekey) 可以作为调用者所需的任何值传递。

@Cacheable(value = "cacheNamex" , key ="#cachekey") 
    public   List  someCachableMethod(String cacheKey ) {
        List someList = someJdbctemplet.query(SOME_QUERY, someRowMapperObj);
        System.out.println(" data Returned from method");
        return someList;
    }
@CacheEvict((value = "cacheNamex" , key ="#cachekey") 
    public void someCacheEvictMethod(String cacheKey ){
           System.out.println("cache eviction called");
           System.out.println(" Expecting cache, cachex is cleared ");  }

最佳答案

如果您的方法没有任何参数,只需将与键相同的方法名称放入 Evict 中即可:

@Cacheable(value = "cacheNamex" , key ="'someCachableMethod'")
 public   List  someCachableMethod() {
 }
 @CacheEvict((value = "cacheNamex" , key ="'someCachableMethod'") 
 public void someCacheEvictMethod(){
}

关于java - 如何在没有方法参数的方法上使用 @cacheable 注释的键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31732117/

相关文章:

java - 除了使用 while 循环之外,如何以另一种方式计算模数?

java.io.IOException : Cannot run program "tskill": CreateProcess error=2, 系统找不到指定的文件

java - 我可以为 Spring FileSystemResource 使用基于环境变量的位置吗?

spring - MongoDB - 考虑在您的配置中定义类型为 'org.springframework.data.mongodb.repository.query.MongoEntityInformation' 的 bean

ruby-on-rails - 基于客观信息的新闻提要缓存解决方案?

java - Java/Java EE 应用程序的服务器端缓存

asp.net - ASP.NET 中的缓存模式

java - TimeZone.getDefault() 方法的输出

java - Eclipse 格式化程序对齐列中的字段

java - 如何为具有spring存储库代码的@Component类编写集成测试?