【发布时间】:2015-07-30 19:08:53
【问题描述】:
我有一个缓存方法和一个缓存驱逐方法我想使用缓存键属性来访问缓存,如何强制或锁定调用此方法的人使用相同的键。
我尝试过这样的事情,但是,它似乎不正确。方法参数(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 "); }
【问题讨论】:
-
如果方法没有参数,那为什么需要多个固定键?
-
不同的可缓存方法使用相同的缓存,所以我想用一个键唯一标识每个可缓存的方法。
-
@cacheEvict 注释有一些问题,它没有按预期工作。我必须为我的缓存创建一个实例并逐出而不是使用注释。
标签: java spring caching ehcache spring-cache