En prévoyant d'implémenter un mécanisme de cache pour les données statiques dans une application Web Spring, quelqu'un peut-il expliquer lequel est le meilleur et comment cela fonctionne?
Avis de non-responsabilité: je suis un employé de Terracotta/Software AG , les responsables de Ehcache
Ehcache est une bibliothèque de mise en cache JVM, célèbre pour être utilisée comme cache de deuxième niveau par défaut pour l'ORM Hibernate
Spring cache a été introduit dans Spring 3.1 et a apporté des annotations telles que @CachePut
pour définir les utilisations des caches dans une application Spring; par défaut, le cache Spring utilise une carte simple, mais vous pouvez le configurer pour utiliser n'importe quel framework de mise en cache populaire, y compris Ehcache
Depuis Spring 4.1, Spring cache prend en charge JSR-107 , la norme de mise en cache sur la JVM.
Cela signifie que vous pouvez ajouter des annotations de mise en cache JSR-107, puis choisir votre bibliothèque de mise en cache ( ehcache 2 ou / goyave / caféine =/ etc. ): vous n'êtes lié à aucun fournisseur de mise en cache, même pas lié aux annotations de cache Spring!
Il y a ce joli billet de blog expliquant le parallèle entre les annotations du cache Spring et les annotations JSR-107 et si vous choisissez d'utiliser Ehcache3 dans votre application Spring Boot, il y a un autre billet de blog intéressant vous expliquant comment l'intégrer dans votre application
Ehcache3 prend en charge JSR 107
Pour Ehcache2, vous pouvez utiliser cette implémentation
https://github.com/ehcache/ehcache-jcache/tree/master/ehcache-jcache