Ehcache 3 является дизайн главной переделки из API, так что есть действительно большие различия с Ehcache 2.x.
net.sf.ehcache.Element
был полностью удален, org.ehcache.Cache
API теперь ближе (но не идентичны) к java.util.concurrent.ConcurrentMap
. Это означает, что вы просто put(K key, V value)
и V get(K key)
- нет необходимости в оберточном объекте.
- Следствием этого является то, что вы больше не можете установить значение для каждого истечения срока действия картона. Однако можно настроить пользовательский
org.ehcache.expiry.Expiry
, который может отображать конкретные ответы.
- Понятие
CacheExceptionHandler
отсутствует. В Ehcache 3 подход заключается в том, что Cache
никогда не должен быть источником исключения. Если get
терпит неудачу, то возвращается null
, если вы всегда возвращаете его до следующего put
. Если put
терпит неудачу, фактически нет разницы с действительным put
, а затем немедленным выселением. Ehcache 3 следует этим принципам. Тем не менее, существуют настройки кеша, в основном около кеширование и распределены кэши, где непротиворечивость может быть проблемой. Ожидайте, что это решение скоро придет к линии Ehcache 3.x.
Что касается более полной документации по теме перехода от одного к другому, это действительно то, что еще нужно сделать.
Какие вещи следует учитывать при миграции ehcache 2.x на 3.x? Я перехожу от 2.4.2 до 3.4 (текущая версия). Есть ли какие-то серьезные изменения, которые мне нужно внести в исходный код? –
Если вы используете Spring, посмотрите здесь: https://stackoverflow.com/a/47562286/548473 – GKislin