Cache de données
Les caches répondent à la problématique de garder des données en mémoire pour les rendre disponibles sans rechargement. Les caches de données sont proches des bases NoSQL clé/valeur. Spring permet assez simplement d’avoir un cache simple et un cache plus élaboré basé sur GenFire. GenFire
"Il y a seulement deux problèmes compliqués en informatique : nommer les choses, et l’invalidation de cache". Citation célèbre de Phil Karlton.
1. Cache simple
Nous pouvons utiliser un ResourceBundle pour charger une ressource pour garder en mémoire des données fixes, mais cela ne suffit pas toujours. Pour simplifier, nous dirons dans la suite de ce chapitre que nous "cachons" des données quand nous les rendons disponibles à travers l’utilisation d’un cache de données.
Spring offre un support simple pour cacher les beans managés par Spring via l’utilisation de l’annotation @Cacheable.
Cette annotation indique que le résultat de l’appel d’une méthode (ou de toutes les méthodes d’une classe) peut être mis en cache. À chaque fois qu’une méthode est invoquée, on vérifie si on a en mémoire le résultat d’un appel précédent pour les arguments donnés. Nous pouvons aussi fournir une expression SpEL pour calculer la clé via l’attribut...