What are the best Cache practices in ehcache or spring cache for spring MVC?
Asked Answered
S

2

20

Planning to implement cache mechanism for static data in spring web based application, can any one explain which is the best and how it works?

  • EhCache
  • Spring Cache
Sension answered 5/9, 2016 at 15:52 Comment(2)
You want a comparison between ehcache and spring cache ?Hinduism
No I would like to know how these two support, or i need to use both to achieve cache?Sension
U
35

Disclaimer : I am a Terracotta / Software AG employee, the maintainers of Ehcache

Ehcache is a JVM caching library, famous for being used as the default 2nd level cache for the Hibernate ORM

Spring cache was introduced in Spring 3.1, and brought annotations such as @CachePut to define uses of caches in a Spring application; by default Spring cache uses a plain Map, but you can configure it to use any popular caching framework, including Ehcache

Since Spring 4.1, Spring cache supports JSR-107, the standard for caching on the JVM.

What that means, is that you can add JSR-107 caching annotations, and then choose your caching library (ehcache 2 or 3 / guava / caffeine / etc.) : you're not tied to any caching vendor, even not tied to Spring cache annotations !

There's this nice blog post explaining the parallel between Spring cache annotations and JSR-107 annotations and if you choose to use Ehcache3 in your spring boot application, there's another interesting blog post explaining you how to integrate it in your app

Ulmer answered 6/9, 2016 at 3:19 Comment(8)
One quirk with the JSR annotations is that there isn't protection from the thundering herd problem. That functionality requires using a loader so that the CacheResult method body isn't invoked. It gets really ugly.Breunig
Thanks Lot Anthony, My doubt is that Do i need to user en-cache and spring cache ?Sension
@DelliKilari, I suggest you enable Spring cache in your application, use Jcache / jsr107 annotations in your code and configure ehcache3 or any other jsr107 implementations as your caching implementation (see the links in my answer)Ulmer
Thank you so much for your time to answering my doubts.Sension
@AnthonyDahanne : Can you please give the best and quick ehcache.xml default cache configurations when implementing ehcache with hibernate 2nd level cache?Corrupt
@Jajikanth : have a look at : github.com/ehcache/ehcache3-samples/blob/xmlconfig/fullstack/…Ulmer
I see it's an 3 years old answer but on ehcache site and example code there is still ehcache.xml. Is it possible to totally get rid off xml file and do only java configuration for ehcache 3.8 and spring boot 2.1 (or above)?Ipecac
@IwoKucharski yes you just need to look up CacheConfigurationBuilder in the Ehcache 3.x libs and utilize it. I realize this is old but I wanted to reply for those who landed here like me.Inheritor
K
0

Ehcache3 has support for JSR 107

For Ehcache2 may be you can use this implementation

https://github.com/ehcache/ehcache-jcache/tree/master/ehcache-jcache

Kenney answered 18/3, 2019 at 15:3 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.