net.sf.ehcache和org.ehcache有什么区别?
net.sf.ehcache的当前版本为2.10.5,而org.ehcache的当前版本为3.5.2。
Spring使用net.sf.ehcache的CacheManager,而org.ehcache的CacheManager不兼容。
是否有特定原因?请解释。
答案 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);