簡體   English   中英

哪個緩存管理器/緩存庫用於 Spring 和 EHCache 3?

[英]Which Cache Manager/Cache library to use for Spring and EHCache 3?

為 Spring Boot 應用程序集成 EhCache3 緩存提供程序。 我需要決定使用哪個緩存管理器。 理想情況下,我想在我的緩存方法上使用 Springs 緩存注釋,例如 @Cacheable 而不是 jsr (@CacheResult) 但對於緩存管理器/緩存庫,我無法決定以下內容

緩存庫注釋我決定使用 ehcache3 提供程序:

爪哇 ehcache 春天 Jcache?(我認為是 jsr/javax)
javax.cache.Cache org.ehcache.Cache org.springframework.cache.Cache org.springframework.cache.Cache
javax.cache.Cache.CacheManager org.ehcache.CacheManager org.springframework.cache.CacheManager org.springframework.cache.jcache.JCacheCacheManager

關於哪個實施的任何建議? 也許我不清楚上述實現的區別以及何時選擇一個而不是另一個

ehcache 是一個非常古老且眾所周知的緩存庫。 它也是 Hibernate 中默認的二級緩存。 我在許多應用程序中都使用了 ehcache,沒有任何問題,所以我會選擇 ehcache。

簡短的回答:

EHCache3 沒有額外的 Spring 集成,而是通過通用 Java 緩存 API JCache/JSR107 集成進行集成。 相關官方文檔可見: https ://docs.spring.io/spring-framework/docs/5.3.x/reference/html/integration.html#cache-store-configuration-ehcache

更長的答案:

你提出的選項不是真正的選項,而是不同的概念。 我試着簡單解釋一下:

  • javax.cache.Cache :這是符合 JSR107 的緩存實現的接口。 EHCache3 也提供了這個接口的實現。
  • org.ehcache.Cache :這是 EHCache3 緩存的本機接口,可能具有 JSR107 Cache接口不支持的不同功能。 如果你的應用中只使用標准的 Spring,除了需要決定使用哪個緩存緩存實現的配置,你不會接觸到這個接口。
  • org.springframework.cache.Cache :即抽象的 Spring 緩存的接口。 它只有 Spring 所需的緩存操作的一小部分。 Spring Caching 總是使用這個接口。
  • org.springframework.cache.jcache.JCacheCacheManager :這是org.springframework.cache.CacheManager可用 JCache 兼容緩存的實現。 這也將與 EHCache3 一起使用,因為 EHCache3 是通過 JSR107 集成的。

因此,當使用符合 JSR107 的緩存時,有兩種 API 轉換:Spring 緩存實現轉換為 JSR107 緩存,而 JSR107 緩存實現轉換為本地緩存 API。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM