Разница между net.sf.ehcache и org.ehcache?

В чем разница между net.sf.ehcache и org.ehcache?

Текущая версия net.sf.ehcache - 2.10.5, тогда как для org.ehcache - 3.5.2.

Spring использует net.sf.ehcache CacheManager, а CacheManager org.ehcache не совместим для этого.

Есть ли какая-то конкретная причина для этого? Пожалуйста, объясни.

1 ответ

Как вы можете убедиться на странице http://www.ehcache.org/downloads/, Ehcache 3 использует префикс пакета org.ehcache и Ehcache 2 использует префикс пакета net.sf.ehcache, Вот и все.

Есть разные на многих уровнях. В ehcache 3.x Элемента больше нет. Нужно непосредственно поместить ключ и значение в Cache, поэтому вы можете предоставить типы при создании кэша:

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

И, следовательно, при получении значения вы избегаете хлопот getObjectValue, а просто обрабатываете Cache как ConcurrentMap. Таким образом, вы не получите NullPointerException, если ключ не существует, поэтому вам не нужно проверять cache.get(cacheKey)!= Null

cache.get(cacheKey);

Способ создания CacheManager также изменился. Вы не получите Instance, так что это больше не синглтон. Вместо этого вы получаете компоновщик, который намного лучше, особенно если вы можете предоставить ему параметры конфигурации в строке:

        CacheManager cacheManager = CacheManagerBuilder.newCacheManagerBuilder()
            .withCache("preConfigured",
                       CacheConfigurationBuilder.newCacheConfigurationBuilder(Long.class, String.class,
                                                      ResourcePoolsBuilder.heap(100))
                       .build())
                        .build(true);
Другие вопросы по тегам