我尝试了一些新的
Spring功能,我发现@CachePut和@CacheEvict注释没有任何效果.可能我做错了.你可以帮帮我吗?
我的applicationContext.xml.
class="org.springframework.cache.ehcache.EhCacheCacheManager"
p:cache-manager-ref="ehcache"/>
class="org.springframework.cache.ehcache.EhCacheManagerFactoryBean"
p:config-location="classpath:ehcache.xml"/>
这部分效果很好.
@Cacheable(value = "finders")
public Finder getFinder(String code)
{
return getFinderFromDB(code);
}
@CacheEvict(value = "finders", allEntries = true)
public void clearCache()
{
}
但是,如果我要从缓存中删除单个值或覆盖它,我不能这样做.我测试了
@CacheEvict(value = "finders", key = "#finder.code")
public boolean updateFinder(Finder finder, boolean nullValuesAllowed)
{
// ...
}
/
@CacheEvict(value = "finders")
public void clearCache(String code)
{
}
/
@CachePut(value = "finders", key = "#finder.code")
public Finder updateFinder(Finder finder, boolean nullValuesAllowed)
{
// gets newFinder that is different
return newFinder;
}