EhCache de cache par défaut en java
J'ai cette configuration pour ehCache:
<ehcache>
<defaultCache
name="defaut"
maxElementsInMemory="5"
eternal="false"
timeToIdleSeconds="20"
timeToLiveSeconds="20"
overflowToDisk="false"
diskPersistent="false"
memoryStoreEvictionPolicy="LRU"
/>
</ehcache>
Comment puis-je obtenir l'accès à de cache par défaut de EhCache?
CacheManager.getInstance().getCache("default"); //returns null
"Ces paramètres seront appliqués pour les caches créé par programmation" - ehcache-failsafe.xml. Et defaultCache élément n'a pas d'attribut de nom - ehcache.xsd. Par la voie
CacheManager.getInstance().addCache("default")
jette "Le Cache par Défaut a déjà été configuré".OriginalL'auteur user349302 | 2010-06-02
Vous devez vous connecter pour publier un commentaire.
Ma compréhension est que le "cache par défaut" est en fait un modèle pour les nouveaux caches créés, plutôt que d'être une cache nommé.
CacheManager.getCache
ne retourner une instance de cache si elle a déjà été créé, de sorte que vous aurez besoin de le dire pour en créer un nouveau, en utilisant quelque chose commeaddCacheIfAbsent()
. Le nom n'a pas d'importance, il sera créé sur la demande en utilisant les paramètres de cache par défaut.OriginalL'auteur skaffman
Je suis tombé sur le même problème en essayant de créer une nouvelle cache.
À l'aide de EhCache 2.7.3 je ne pouvais pas utiliser le addCacheIfAbsent(..) méthode puisqu'elle renvoie le obsolète EhCache classe, et non pas de la classe de Cache.
Ma première tentative a été comme suit:
Mais en utilisant CacheManager.getCache("default") renvoie NULL si oui, il ne semble pas que l'on peut obtenir une référence à la valeur par défaut (modèle) mémoire cache.
J'ai eu le code du travail comme suit:
Il n'est pas thread-safe (testé à l'aide de TestNg simultanées tests). La mise en œuvre finale se présente comme suit:
OriginalL'auteur NS du Toit
veuillez vous référer à l'api de ehcache
à partir de:
http://ehcache.org/apidocs/2.7.6/
espérons vous aider!
OriginalL'auteur 杨飞龙
Mais si nous ajoutons une région nommée "par défaut", ehcache va jeter l'exception:
net.sf.ehcache.ObjectExistsException: Le Cache par Défaut a déjà été configuré
OriginalL'auteur gitee.com