net.sf.ehcache和org.ehcache之间的区别?

时间:2018-07-31 10:11:50

标签: spring caching ehcache-3

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

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

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

是否有特定原因?请解释。

2 个答案:

答案 0 :(得分:2)

您可以在页面http://www.ehcache.org/downloads/上进行验证,Ehcache 3使用程序包前缀org.ehcache,而Ehcache 2使用程序包前缀net.sf.ehcache。就是这样。

答案 1 :(得分:0)

许多级别都有不同。使用ehcache 3.x,Element不再存在。应该直接将键和值放在缓存中,因此在创建缓存时可以提供类型:

import scipy.misc
import matplotlib.pyplot as plt
from scipy import ndimage

face = scipy.misc.face()
rotate = ndimage.rotate(face,90)
gray = rotate
plt.imshow(gray, cmap=plt.get_cmap('gray'), vmin=0, vmax=1)
plt.show()

因此,在检索值时,避免了getObjectValue的麻烦,而只是将Cache视为ConcurrentMap。因此,如果键不存在,则不会获得NullPointerException,因此不需要检查cache.get(cacheKey)!= null

      Cache<Long, String> myCache = cacheManager.getCache("myCache", Long.class, String.class);

实例化CacheManager的方式也已更改。您不会再获得getInstance,因此它不再是单例。相反,您会得到一个更好的构建器,尤其是可以为它提供内联配置参数:

cache.get(cacheKey);