34 votes

bonjour exemple du monde pour ehcache?

ehcache est extrêmement configurable bête, et les exemples sont assez complexes, impliquant souvent plusieurs couches d'interfaces.

Quelqu'un a trouver l'exemple le plus simple qui vient de caches quelque chose comme un seul numéro dans la mémoire (qui n'est pas distribué, pas de XML, tout comme les quelques lignes de java que possible). Le nombre est alors mis en cache pour dire 60 secondes, puis la prochaine demande de lecture de causes pour obtenir une nouvelle valeur (par exemple, en appelant au Hasard.nextInt() ou similaire)

Est-il plus rapide/plus facile d'écrire notre propre cache quelque chose comme ceci avec un singleton et un bit de synchronisation?

Pas de Printemps s'il vous plaît.

38voto

jbrookover Points 3424

EhCache est livré avec un failsafe configuration de certains raisonnables temps d'expiration (120 secondes). C'est suffisant pour se lever et courir.

Importations:

import net.sf.ehcache.CacheManager;
import net.sf.ehcache.Element;

Ensuite, la création d'un cache est assez simple:

CacheManager.getInstance().addCache("test");

Cela crée un cache appelés test. Vous pouvez avoir beaucoup de différents, séparés les caches sont tous gérés par le même CacheManager. L'ajout d' (key, value) paires de ce cache est aussi simple que:

CacheManager.getInstance().getCache("test").put(new Element(key, value));

Récupérer une valeur pour une clé donnée est aussi simple que:

Element elt = CacheManager.getInstance().getCache("test").get(key);
return (elt == null ? null : elt.getObjectValue());

Si vous tentez d'accéder à un élément après la valeur par défaut de 120 deuxième période d'expiration, le cache va retourner la valeur null (d'où le vérifier pour voir si elt est null). Vous pouvez régler le délai d'expiration par la création de votre propre ehcache.xml le fichier - vous à la documentation qui est décent sur la ehcache site.

13voto

aliteralmind Points 6583

Une implémentation de la réponse de jbrookover:

 import net.sf.ehcache.CacheManager;
import net.sf.ehcache.Element;
import net.sf.ehcache.Cache;

public class EHCacheDemo  {
    public static final void main(String[] igno_red)  {
        CacheManager cchm = CacheManager.getInstance();

        //Create a cache
        cchm.addCache("test");

        //Add key-value pairs
        Cache cch = cchm.getCache("test");
        cch.put(new Element("tarzan", "Jane"));
        cch.put(new Element("kermit", "Piggy"));

        //Retrieve a value for a given key
        Element elt = cch.get("tarzan");
        String sPartner = (elt == null ? null : elt.getObjectValue().toString());

        System.out.println(sPartner);  //Outputs "Jane"

        //Required or the application will hang
        cchm.removeAllCaches();  //alternatively: cchm.shutdown();
    }
}
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X