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

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