Spring MVC的ehcache或spring cache中最好的Cache实践是什么?

计划在基于Spring网络的应用程序中实现静态数据的缓存机制,任何人都可以解释哪个是最好的以及它是如何工作的?

  • 的Ehcache
  • Spring Cache

免责声明:我是Terracotta / Software AG的员工,也是Ehcache的维护者

Ehcache是一个JVM缓存库,以用作Hibernate ORM的默认二级缓存而闻名

在Spring 3.1中引入了Spring缓存 ,并带来了诸如@CachePut注释来定义Spring应用程序中缓存的使用; 默认情况下,Spring缓存使用普通Map,但您可以将其配置为使用任何流行的缓存框架,包括Ehcache

从Spring 4.1开始,Spring缓存支持JSR-107 ,这是JVM上缓存的标准。

这意味着,您可以添加JSR-107缓存注释,然后选择您的缓存库( ehcache 2或3 / guava / caffeine / 等 ):您不依赖于任何缓存供应商,甚至不依赖于Spring缓存注释!

有一篇很好的博客文章解释了Spring缓存注释和JSR-107注释之间的平行关系 ,如果你选择在Spring启动应用程序中使用Ehcache3, 还有另一篇有趣的博客文章解释你如何将它集成到你的应用程序中