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

Spring net.sf.ehcache和org.ehcache之间的区别?,spring,caching,ehcache-3,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与之不兼容 有什么具体原因吗?请解释。您可以在页面上验证,Ehcache 3使用的是包前缀org.Ehcache,Ehcache 2使用的是包前缀net.sf.Ehcache。就是这样。在很多层次上都有不同。对于

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

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

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


有什么具体原因吗?请解释。

您可以在页面上验证,Ehcache 3使用的是包前缀
org.Ehcache
,Ehcache 2使用的是包前缀
net.sf.Ehcache
。就是这样。

在很多层次上都有不同。对于ehcache 3.x,元素不再存在。应该直接将键和值放入缓存中,因此您可以在创建缓存时提供类型:

      Cache<Long, String> myCache = cacheManager.getCache("myCache", Long.class, String.class);
实例化CacheManager的方式也发生了变化。您将无法获取实例,因此它不再是单例。取而代之的是一个构建器,这是一种更好的方式,特别是您可以为它提供内嵌的配置参数:

        CacheManager cacheManager = CacheManagerBuilder.newCacheManagerBuilder()
            .withCache("preConfigured",
                       CacheConfigurationBuilder.newCacheConfigurationBuilder(Long.class, String.class,
                                                      ResourcePoolsBuilder.heap(100))
                       .build())
                        .build(true);

包装差异明显。另一个区别是,Ehcache2在SVN回购上,而Ehcache3在GIT回购上。但是没有其他的区别吗?我在这里找到了一个合适的答案:可能是重复的
        CacheManager cacheManager = CacheManagerBuilder.newCacheManagerBuilder()
            .withCache("preConfigured",
                       CacheConfigurationBuilder.newCacheConfigurationBuilder(Long.class, String.class,
                                                      ResourcePoolsBuilder.heap(100))
                       .build())
                        .build(true);