Установите стратегию сохранения на "localTempSwap" в EHCache 3.x

В EHCache 3.1.3 отсутствует API 2.x для установки стратегии сохранения, например, перечисление net.sf.ehcache.config.PersistenceConfiguration.Strategy больше не находится в lib.

Я прочитал документы (для версии 3.1). но я не мог найти ничего о том, как настроить стратегию персистентности, поэтому я предполагаю, что в версии 3.x есть другое понятие или, возможно, эта функция была удалена, но это звучит немного странно.

Может ли кто-нибудь сказать мне, как я могу настроить EHCache 3.1.x для управления сохранением, например Strategy.LOCALTEMPSWAP? Если это невозможно, есть ли альтернатива или обход?

Ответ 1

При настройке уровня диска в Ehcache 3.x существует логическое значение, указывающее на сохранение:

  • true: данные сохраняются между перезапусками JVM, если CacheManager или UserManagedCache были правильно закрыты с использованием одного из методов close,
  • false: данные не сохраняются между перезапусками JVM, хотя диск используется во время операций кеша. Обратите внимание, что это значение по умолчанию.

Использование зависит от того, откуда ваша конфигурация исходит из:

  • В Java используйте ResourcePoolsBuilder.disk(long size, MemoryUnit unit, boolean persistent) с логическим значением, определенным выше,
  • В XML используйте <ehcache:disk unit="GB" persistent="true">100</ehcache:disk> с булевым флагом снова, как определено выше.

Итак, чтобы достичь эквивалента Strategy.LOCALTEMPSWAP в 2.x, вы можете работать только с по умолчанию.

Обратите внимание, что с 3.1.3 вы можете использовать системное свойство в XML для настройки местоположения папки данных, как в ${java.tmp.dir}.