在dropwizard项目中使用ehcache

时间:2013-08-26 04:25:24

标签: java ehcache dropwizard

我正在使用dropwizard来创建RESTful服务。为了避免锤击数据库,我在java中寻找一个好的缓存解决方案。搜索网络引导我进入ehcache。我已经阅读了一些文档,但目前还不清楚如何在dropwizard项目中使用ehcache。

例如,配置文件在哪里?我只需要一些东西来帮助我开始使用缓存。

如果难以集成,那么dropwizard项目最适合的缓存解决方案是什么?

谢谢!

2 个答案:

答案 0 :(得分:5)

如果您最终需要一个更简单(比ehcache)的缓存框架/ API,请考虑使用guava中的CacheBuidler:

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

典型的缓存实现和使用只需要几行代码而不需要配置文件。

答案 1 :(得分:0)

我知道这是一个老问题,但是我已经能够进行设置。就是这样。

  1. 获取hibernate版本。您可以从dropwizard-hibernate包的依赖项中获得此信息。例如。 dropwizard-hibernate:1.3.12取决于hibernate-core:5.2.18.Final
  2. 添加与确切的休眠版本匹配的ehcache,因此在这种情况下为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。还有其他类型的缓存,例如查询缓存等,可能会根据您的用例而有所帮助。

让我知道这是否有帮助。