използване на 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. Активиране на кеширане на второ ниво при хибернация. 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