在Spring MVC中,ehcache或spring cache中有哪些最佳缓存实践?

20

我计划为基于Spring的Web应用程序实现静态数据缓存机制,请问有人能解释哪个是最好的,并且它是如何工作的?

  • EhCache
  • Spring Cache

您可以考虑使用EhCache或Spring Cache。


你想要比较 Ehcache 和 Spring Cache 吗? - Amit Parashar
不,我想知道这两个如何支持,还是我需要同时使用它们来实现缓存? - Delli Kilari
2个回答

34

声明:我是Terracotta / Software AG的员工,他们是Ehcache的维护者

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

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

自Spring 4.1以来,Spring cache支持JSR-107,这是JVM上的缓存标准。

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

这篇不错的博客文章解释了Spring缓存注释和JSR-107注释之间的相似之处,如果您选择在Spring Boot应用程序中使用Ehcache3,则还有另一篇有趣的博客文章解释如何将其集成到您的应用程序中


非常感谢你,安东尼。我的疑问是,我需要使用en-cache和spring cache吗? - Delli Kilari
2
@DelliKilari,我建议您在应用程序中启用Spring缓存,在您的代码中使用Jcache/jsr107注释,并将ehcache3或任何其他jsr107实现配置为您的缓存实现(请参见我的答案中的链接)。 - Anthony Dahanne
@AnthonyDahanne :请问您在使用Hibernate二级缓存时,能否提供最佳和快速的ehcache.xml默认缓存配置? - Jajikanth pydimarla
@Jajikanth:请查看:https://github.com/ehcache/ehcache3-samples/blob/xmlconfig/fullstack/src/main/resources/ehcache.xml - Anthony Dahanne
我看到这是一个三年前的答案,但在ehcache网站和示例代码中仍然有ehcache.xml。是否可能完全摆脱xml文件,并且只使用Java配置来实现ehcache 3.8和Spring Boot 2.1(或更高版本)? - Iwo Kucharski
显示剩余2条评论

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接