首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >net.sf.ehcache与org.ehcache的差异?

net.sf.ehcache与org.ehcache的差异?
EN

Stack Overflow用户
提问于 2018-07-31 10:11:49
回答 2查看 5.3K关注 0票数 11

net.sf.ehcache和org.ehcache有什么区别?

net.sf.ehcache的当前版本为2.10.5,而org.ehcache的相同版本为3.5.2。

Spring使用net.sf.ehcache的CacheManager,org.ehcache的CacheManager不兼容。

有什么特别的原因吗?请解释一下,

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-06-18 10:11:08

在许多层面上有不同的地方。有了ehcache 3.x,元素就不复存在了。应该将键和值直接放入缓存中,因此在创建缓存时可以提供类型:

代码语言:javascript
复制
      Cache<Long, String> myCache = cacheManager.getCache("myCache", Long.class, String.class);

因此,在检索值时,您可以避免getObjectValue的麻烦,而只是将缓存视为ConcurrentMap。因此,如果密钥不存在,就不会得到NullPointerException,因此不需要检查cache.get(cacheKey) != null

代码语言:javascript
复制
cache.get(cacheKey);

实例化CacheManager的方式也发生了变化。你不会getInstance,所以它不再是独生子女了。相反,您可以得到一个构建器,这要好得多,特别是您可以内联地为它提供配置参数:

代码语言:javascript
复制
        CacheManager cacheManager = CacheManagerBuilder.newCacheManagerBuilder()
            .withCache("preConfigured",
                       CacheConfigurationBuilder.newCacheConfigurationBuilder(Long.class, String.class,
                                                      ResourcePoolsBuilder.heap(100))
                       .build())
                        .build(true);
票数 2
EN

Stack Overflow用户

发布于 2018-07-31 20:23:21

正如您可以在页面http://www.ehcache.org/downloads/上验证的那样,Ehcache 3使用包前缀org.ehcache,Ehcache 2使用包前缀net.sf.ehcache。就这样。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51610912

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档