mardi 4 février 2014

Annotation spring cacheable

L'annotation Spring @Cacheable existe depuis la version 3.1 de SPRING. 

Cette annotation permet de mettre en cache des appels de méthodes. 

Il va sans dire que cela  peut améliorer la performance de l'application mais il faut l'utiliser à bon escient. 

Si la méthode est certaine de retourner toujours le même résultat pour des données en entrée identiques ( arguments) alors il peut être de bon ton de la déclarer Cacheable. 

Si ce n'est pas le cas il vaut mieux éviter de mettre en cache le résultat de l'appel de la méthode. Par exemple si au cours du temps pour les mêmes arguments la valeur de retour de la méthode varie ou évolue. 

D'autres annotations d'intérêt pour le cache sont : @CachePut qui force la mise à jour du cache et sers à initialiser le cache plutôt qu'à optimiser les appels. 

Pour faire simple il permet de populer le cache avec une exécution de méthode qui servira ensuite dans l'optimisation des appels par SPRING. Il ne faut pas utiliser @CachePut et @Cacheable sur la même méthode. 

@CacheEvict lui aussi met à jour le cache mais en effaçant des données. Il supprime possiblement du cache toutes les entrées visées. La méthode dont il est l'annotation peut être de type void car elle n'est qu'un déclencheur d'action. 

Pour combiner plusieurs annotations : l'annotation à utiliser est @Caching. 

La bible de ces annotations se trouve ici : 
Http://docs.spring.io/spring/docs/3.1.x/spring-framework-reference/html/cache.html


Aucun commentaire:

Enregistrer un commentaire