有人可以解释一下
之间的区别com.googlecode.ehcache.annotations.Cacheable 和 org.springframework.cache.annotation.Cacheable
如果我用第二个替换第一个会产生什么影响?
我在使用spring编码的Web服务中使用了@Cacheable
@Cacheable(value = "policyCache")
public ResponseEntity<ResponseVO> listById(@PathVariable(value = "id") )
答案 0 :(得分:1)
Spring 3为缓存服务引入了一个新的抽象层。我们的想法是提供一组常用功能,主要是注释,以激活和管理缓存。 由于它只是一个抽象层,Spring 3缓存仍然需要一个具体的实现来工作。缓存实现的入口点是CacheManager接口。默认情况下,提供了2个CacheManager的具体实现: EhCacheCacheManager:EhCache的默认实现 ConcurrentMapCacheManager:使用Java ConcurrentHashMap作为缓存存储的默认实现。
使用com.googlecode.ehcache.annotations.Cacheable,您可以立即依赖ehCache实现。
如果您使用Spring注释,如果您想稍后更改缓存实现,则不必进行任何代码调整,因此我建议使用后者。