0

有人可以解释一下有什么区别吗

com.googlecode.ehcache.annotations.Cacheable 和 org.springframework.cache.annotation.Cacheable

如果我用第二个替换第一个会有什么效果??

我在使用 spring 编码的 Web 服务中使用了 @Cacheable

@Cacheable(value = "policyCache")
public ResponseEntity<ResponseVO> listById(@PathVariable(value = "id") )
4

1 回答 1

1

Spring 3 为缓存服务引入了一个新的抽象层。这个想法是提供一组通用特性,主要是注释,来激活和管理缓存。由于它只是一个抽象层,Spring 3 的缓存仍然需要一个具体的实现才能工作。缓存实现的入口点是 CacheManager 接口。默认提供了 CacheManager 的 2 个具体实现: EhCacheCacheManager:EhCache 的默认实现 ConcurrentMapCacheManager:使用 Java ConcurrentHashMap 作为缓存存储的默认实现。

通过使用 com.googlecode.ehcache.annotations.Cacheable,您可以立即依赖 ehCache 实现。

如果您使用 Spring 注释,如果您想稍后更改缓存实现,则无需进行任何代码调整,因此我建议使用后者。

于 2013-12-19T16:04:06.003 回答