java - 可缓存注解有什么用

标签 java spring web-services jakarta-ee ehcache

有人可以解释一下两者之间的区别吗

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

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

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

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

最佳答案

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

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

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

关于java - 可缓存注解有什么用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19397937/

相关文章:

java - 使用 jigsaw 模块通过 jdk9 运行 spring boot

java - 本地主机 :8080 requires login and password - tomcat + h2

java - 错误:Log already in use?

Java:将私有(private)成员字段设置为可访问的危险?

java - "main() class"文件的最佳编码(布局)实践?

java - Getter 方法在增强循环中不起作用

java - Quickbooks 身份验证错误 - Java SDK Quickbooks v3.0

java - 从火力地堡检索数据

java - IntelliJ 中没有注释的 Spring 项目

java - ResponseWrapper 上的 JAXB "(variable) is not a valid property"