6

我正在尝试将我的项目的 Ehcache 从 2.6 升级到 3.0 版本。

net.sf.ehcache.Element 和 CacheExceptionHandler 的任何替换。

关于 Ehcache 3 的文档较少,任何人都可以提供一些将 Ehacahe 升级到版本 3 的提示。

4

1 回答 1

11

Ehcache 3 在设计上是对 API 的重大修改,因此与 Ehcache 2.x 确实存在很大差异。

  • net.sf.ehcache.Element已完全删除,org.ehcache.CacheAPI 现在更接近(但不相同)的java.util.concurrent.ConcurrentMap. 这意味着您简单put(K key, V value)V get(K key)- 不需要包装器对象。
    • 这样做的结果是您不能再设置每个映射的过期时间。但是,org.ehcache.expiry.Expiry可以配置一个自定义,它可以具有映射特定的答案。
  • 的概念CacheExceptionHandler没了。在 Ehcache 3 中,方法是 aCache永远不应该是异常的来源。如果 aget失败,则返回是有效的null,只要您始终返回直到下一个put。如果 a失败,则与 valid后立即evictionput实际上没有区别。Ehcache 3 遵循这些原则。然而,有缓存设置,主要围绕缓存直通分布式缓存,其中一致性可能是一个挑战。预计 Ehcache 3.x 产品线很快就会有解决方案。put

至于关于从一个迁移到另一个的主题的更完整的文档,这确实是仍然需要做的事情。

于 2017-02-07T08:50:08.353 回答