在静态HashMap上使用ehcache的优点

时间:2012-08-10 19:31:26

标签: caching static annotations ehcache

我一直使用java单例类来满足我的基本缓存需求  现在该项目正在使用ehcache并且没有深入研究源代码,我无法弄清楚单例模式有什么问题。

即使用ehcahce框架有什么好处,除了可以使用xml配置和注释完成缓存而无需编写样板代码(即静态HashMap)

3 个答案:

答案 0 :(得分:5)

这取决于您的缓存机制需要什么。 Ehcache提供了很多很酷的功能,需要很多精心设计的代码才能手动完成:

  • LRU,LFU和FIFO缓存逐出政策
  • 灵活配置
  • 持久性
  • 复制
  • 更多......

我建议你在http://ehcache.org/about/features查看它们,然后决定你的项目真的需要什么。

答案 1 :(得分:2)

最重要的一个:

溢出到磁盘的能力 - 这是普通HashMap中没有的东西,写这样的东西远非琐碎。 EhCache可以像配置键值数据库一样简单。

即使你没有使用溢出到磁盘,也有一个很大的样板来编写和你自己的实现。如果可以加载整个数据库,那么在启动时使用内存数据库和写入持久性以及恢复将是解决方案。但是内存有限,你必须从内存中删除元素。但是哪一个,基于什么?此外,您必须断言缓存元素不会太旧。应更换旧元件。如果您需要从缓存中删除元素,则应从过时的开始。但是,如果您在用户请求时执行此操作吗?它会减慢请求。或者开始自己的主题?

使用EhCache,您可以使用库来解决所有这些问题已解决和测试

答案 2 :(得分:1)

此外,还有一个集群的闭源版ehcache,它允许您拥有分布式缓存。这可能是您可能想要考虑使用ehcache的一个原因。