2017-01-26 3 views
0

Я работаю над Java-приложением, которое разрабатывается с использованием Java (JDK 1.8), Spring MVC (Restful Web Service Layer) 4.x, Hibernate 5.x, MYSQL Db и Tomcat Server 8. Все настроено программно в java-конфиге и нет файлов конфигурации XML. Мне нужно настроить кеш второго уровня для спящего режима. Я планирую интегрировать EhCache с приложением.Интеграция Ehcache с использованием приложения Spring MVC и Hibernate

  1. Этого можно достичь с помощью Java Config (без файла EhCache.xml)?
  2. Другой вопрос в чем разница между весенним кешем и спящим кэшем второго уровня? не

ответ

1

Что касается настройки Ehcache в кэш второго уровня Hibernate программно, нет это не представляется возможным из коробки, когда вы используете Ehcache 2.x и net.sf.ehcache.hibernate.EhCacheRegionFactory. Вам нужно будет расширить заводский класс и настроить его для использования.

Для Hibernate 5.2 с помощью JCache, используя Ehcache 3.x в качестве провайдера, существует более простой путь: убедитесь, что вы сначала сконфигурировали JCache CacheManager, а затем Hibernate использовали настроенную конфигурацию. В качестве альтернативы вы можете расширить org.hibernate.cache.jcache.JCacheRegionFactory и приспособить CacheManager и Cache творения. following sample может помочь вам разобраться.

На второй точке:

Spring caching общая абстракция, которая может быть использована во всех слоях приложения, где вы решили, что в кэше, из которых называют и т.д ...

Hibernate second level cache является выделенный кеш между вашей объектной моделью и доступом к базе данных. Вы указываете инфраструктуре, что кешировать, с какой семантикой, но тогда фактическая работа скрыта от вас.

Вы можете объединить оба приложения в одном приложении, где вы будете кэшировать результаты более высокого уровня, такие как результаты вызова службы или веб-страницы с помощью Spring Cache и сущности/результаты запроса с Hibernate 2LC. Хотя я бы рекомендовал использовать разные Cache, чтобы отделить их содержание и жизненный цикл.

+0

Большое спасибо за то, что потратили свое время, чтобы ответить –

+0

@SafdarAkrami Я выполнил полную реализацию Java для образца fullstack ehcache. Но он еще не слит. Поэтому вы можете проверить https://github.com/henri-tremblay/ehcache3-samples/blob/javaonly/fullstack/src/main/java/org/terracotta/demo/config/CacheConfiguration.java – Henri

Смежные вопросы