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?
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