1

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

我试过这样的东西,但是,它似乎不正确。方法参数(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 ");  }
4

2 回答 2

4

如果您的方法没有任何参数,只需将相同的方法名称作为键并将其用于 Evict:

@Cacheable(value = "cacheNamex" , key ="'someCachableMethod'")
 public   List  someCachableMethod() {
 }
 @CacheEvict((value = "cacheNamex" , key ="'someCachableMethod'") 
 public void someCacheEvictMethod(){
}
于 2015-07-30T19:46:10.057 回答
1

如果您的方法没有参数,您可以使用没有键值的注释,如果您想了解有关此主题的更多信息,请参阅http://docs.spring.io/spring/docs/current/spring-framework-reference/ spring 文档中的html/cache.html#cache-annotations-cacheable-default-key ..

于 2015-07-30T23:59:42.107 回答