использование ehcache в проекте dropwizard

Я использую dropwizard для создания службы RESTful. Чтобы не забивать базу данных, я ищу хорошее решение для кэширования в java. Поиск в Интернете привел меня к ehcache. Я немного прочитал документацию, но в настоящее время мне не ясно, как использовать ehcache в проекте dropwizard.

Например, куда идет файл конфигурации? Мне просто нужно что-то, чтобы помочь мне начать использовать кеш.

Если это сложно интегрировать, какое решение для кэширования будет наиболее подходящим для проекта dropwizard?

Спасибо!


person Erwin    schedule 26.08.2013    source источник


Ответы (2)


Если вам в конечном итоге нужна более простая (чем ehcache) структура/API кэширования, рассмотрите возможность использования CacheBuidler из guava:

https://code.google.com/p/guava-libraries/wiki/CachesExplained

Для типичной реализации и использования кэша требуется всего несколько строк кода и никаких файлов конфигурации.

person Keith    schedule 26.08.2013
comment
Я быстро просмотрел, и это похоже на то, что мне нужно. Я постараюсь реализовать быстрый, и сообщу вам о результате. Спасибо! - person Erwin; 26.08.2013
comment
@Erwin Вот пример его использования в простом блоге на основе Dropwizard: github.com/jim618/multibit-website/tree/master/src/main/java/ - person Gary Rowe; 26.08.2013
comment
@GaryRowe Спасибо за пример кода. Это будет очень полезно - person Erwin; 03.09.2013

Я знаю, что это старый вопрос, но я смог его настроить. Вот как.

  1. Получить версию hibernate. Вы можете получить это из зависимостей пакета dropwizard-hibernate. например. dropwizard-hibernate:1.3.12 зависит от hibernate-core:5.2.18.Final.
  2. Добавьте ehcache, соответствующий точной версии hibernate, поэтому в данном случае compile group: 'org.hibernate', name: 'hibernate-ehcache', version: '5.2.18.Final'
  3. Включите кэширование 2-го уровня в спящем режиме. Dropwizard управляет конфигурацией в config.yml. Так что это будет что-то вроде:
# For documentation on available options please refer io.dropwizard.db.DataSourceFactory
database:
  # any properties specific to your JDBC driver:
  properties:
    # Enable second level cache with EhCache
    hibernate.cache.use_second_level_cache: true
    hibernate.cache.region.factory_class: org.hibernate.cache.ehcache.EhCacheRegionFactory
  1. Теперь ваш кеш должен быть включен. Теперь вы можете использовать аннотации к сущностям, чтобы сделать их кэшируемыми. см. документ на @org.hibernate.annotations.Cache

Я нашел эту статью хорошим началом. https://www.baeldung.com/hibernate-second-level-cache. Существуют также другие типы кешей, такие как кеш запросов и т. д., которые могут помочь в зависимости от вашего варианта использования.

Дайте мне знать, если это помогло.

person EFreak    schedule 21.04.2020