net.sf.ehcache和org.ehcache有什么区别?
net.sf.ehcache的当前版本为2.10.5,而org.ehcache的相同版本为3.5.2。
Spring使用net.sf.ehcache的CacheManager,org.ehcache的CacheManager不兼容。
有什么特别的原因吗?请解释一下,
发布于 2019-06-18 10:11:08
在许多层面上有不同的地方。有了ehcache 3.x,元素就不复存在了。应该将键和值直接放入缓存中,因此在创建缓存时可以提供类型:
Cache<Long, String> myCache = cacheManager.getCache("myCache", Long.class, String.class);因此,在检索值时,您可以避免getObjectValue的麻烦,而只是将缓存视为ConcurrentMap。因此,如果密钥不存在,就不会得到NullPointerException,因此不需要检查cache.get(cacheKey) != null
cache.get(cacheKey);实例化CacheManager的方式也发生了变化。你不会getInstance,所以它不再是独生子女了。相反,您可以得到一个构建器,这要好得多,特别是您可以内联地为它提供配置参数:
CacheManager cacheManager = CacheManagerBuilder.newCacheManagerBuilder()
.withCache("preConfigured",
CacheConfigurationBuilder.newCacheConfigurationBuilder(Long.class, String.class,
ResourcePoolsBuilder.heap(100))
.build())
.build(true);发布于 2018-07-31 20:23:21
正如您可以在页面http://www.ehcache.org/downloads/上验证的那样,Ehcache 3使用包前缀org.ehcache,Ehcache 2使用包前缀net.sf.ehcache。就这样。
https://stackoverflow.com/questions/51610912
复制相似问题