Exemple d'utilisation du module de cache


Exemple 1 : Exploitez les données mises en cache directement via le module de cache
public static void main(String[] args) throws Exception {
    YMP.get().init();
    try {
        // 操作默认缓存
        Caches.get().put("key1", "value1");
        System.out.println(Caches.get().get("key1"));
        // 操作指定名称的缓存
        Caches.get().put("default", "key2", "value2");
        System.out.println(Caches.get().get("default", "key2"));
    } finally {
        YMP.get().destroy();
    }
}

Remarque : Lors de la spécification du nom du cache, veuillez confirmer si la configuration correspondant au nom existe déjà ;

Résultat de l'exécution :

value1
value2
Exemple 2 : Mise en cache des méthodes de classe basée sur des annotations

L'annotation @Cacheable est utilisée ici, qui permet d'identifier si les résultats d'exécution des méthodes de la classe sont mis en cache.

Tout d'abord, l'annotation @Cacheable doit être dans Déclaré sur une classe qui a été enregistrée auprès du gestionnaire d'objets de classe YMP, indiquant que la classe prend en charge la mise en cache

Deuxièmement, ajoutez l'annotation @Cacheable sur la méthode qui en a besoin ; pour mettre en cache les résultats de l'exécution ;

Description du paramètre d'annotation @Cacheable :

cacheName : nom du cache, la valeur par défaut est default

key : clé de cache, si elle n'est pas définie, elle sera automatiquement générée à l'aide de keyGenerator ; generateur : classe d'implémentation de l'interface du générateur de clés, la valeur par défaut est DefaultKeyGenerator.class ;

scope : portée du cache, peut Les valeurs sélectionnées sont APPLICATION, SESSION et DEFAULT, la valeur par défaut est DEFAULT, les paramètres non-DEFAULT nécessitent la coopération du cache interface du processeur scope (ICacheScopeProcessor) ;

timeout : délai d'expiration des données du cache, paramètre facultatif, la valeur doit être supérieure ou égale à 0, 0 signifie que le cache par défaut est de 300 secondes

Exemple de code :

@Bean
@Cacheable
public class CacheDemo {

    @Cacheable
    public String sayHi(String name) {
        System.out.println("No Cached");
        return "Hi, " + name;
    }

    public static void main(String[] args) throws Exception {
        YMP.get().init();
        try {
            CacheDemo _demo = YMP.get().getBean(CacheDemo.class);
            System.out.println(_demo.sayHi("YMP"));
            System.out.println(_demo.sayHi("YMP"));
            //
            System.out.println("--------");
            //
            System.out.println(_demo.sayHi("YMPer"));
            System.out.println(_demo.sayHi("YMP"));
            System.out.println(_demo.sayHi("YMPer"));
        } finally {
            YMP.get().destroy();
        }
    }
}
;
Résultat de l'exécution :

No Cached
Hi, YMP
Hi, YMP
--------
No Cached
Hi, YMPer
Hi, YMP
Hi, YMPer
Comme le montre le résultat ci-dessus, le caractère "No Cached" sera affiché lorsque le même paramètre de la méthode sayHi est appelé pour la première fois, indiquant que c'est le cas. ne pas utiliser le cache et renvoie la valeur directement depuis le cache lorsqu'il est à nouveau appelé

 ;