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

Delli Kilari picture Delli Kilari · Sep 5, 2016 · Viewed 17k times · Source

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

Answer

Anthony Dahanne picture Anthony Dahanne · Sep 6, 2016

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