Spring résume l'interface CacheManager pour diverses implémentations de cache et les utilisateurs utilisent cette interface pour traiter les caches sans se soucier de l'implémentation sous-jacente. Il peut également être commodément modifié en implémentation spécifique du cache sans modifier le code commercial. Voici une brève introduction à l'utilisation du cache à Springboot:
1. Ajouter des dépendances
<dependency> <proupId> org.springframework.boot </proupId> <ArtifactId> printemp-boot-starter-cache </retifactid> </dEpendency>
2. Allumez le cache dans la classe de configuration, comme indiqué dans la figure ci-dessous:
3. Ajouter des annotations aux méthodes qui doivent être utilisées, comme suit:
@Override // @ cacheput Cette annotation mettra en cache la valeur de retour de la méthode, où le nom du cache est les gens et la clé des données est l'ID de la personne @cacheput (valeur = "People", key = "# Person.id") Public Person Save (personne personne) {Person P = PersonRepository.Save (personne); System.out.println ("Pour ID, la clé est:" + p.getID () + "Data Cached"); Retour p; } @Override // @ cacheevict Cette annotation supprimera les données avec l'ID de clé dans le cache de personnes @cacheevict (value = "People", key = "#id") public void retiver (long id) {System.out.println ("Supprimer le cache de données avec id et clé" + id + ""); // L'opération de suppression réelle n'est pas effectuée ici} @Override // @ Cacheable Cette annotation déterminera si le cache avec la clé # Person.id dans le cache des gens existe lorsque la méthode est exécutée. S'il existe, il renverra directement les données dans le cache. S'il n'existe pas, la base de données sera vérifiée et le résultat de retour sera mis en cache. @Cacheable (valeur = "People", key = "# Person.id") Public FindOne (personne personne) {Person P = PersonRepository.FindOne (Person.getId ()); System.out.println ("Pour ID, la clé est:" + p.getID () + "Data Cached"); Retour p; }Les pièces ci-dessus ont terminé le cache, mais le cache actuel est basé sur la mémoire par défaut et n'a pas été persisté. Ce qui suit est une implémentation spécifique de redis comme cache, comme suit:
4. Ajouter des dépendances
<dependency> <proupId> org.springframework.boot </proupId> <ArtifactId> printemp-boot-starter-redis </retifactid> </pedicke>
5. Ajouter la configuration redis dans le fichier de configuration
redis.hostname = localhost redis.port = 6379
6. Configurer Redis dans le conteneur de printemps
@Configuration Public Class RedisConfig étend CachingConfigurersupport {private static final logger Logger = LoggerFactory.getLogger (redisconfig.class); @Autowired Private Environment Env; @Bean public JedisconnectionFactory RedisconnectionFactory () {JedisconnectionFactory redisconnectionfactory = new JedisconnectionFactory (); redisconnectionfactory.sethostname (env.getProperty ("redis.hostname")); redisconnectionfactory.setport (Integer.Parseint (Env.getProperty ("redis.port"))); retour redisconnectionfactory; } @Bean public Redistetemplate <String, String> redesttemplate (redisconnectionfactory cf) {reistemplate <string, string> redesttemplate = new Redetemplate <> (); Redistemplate.setConnectionFactory (CF); retour redestemplate; } @Bean Public CacheManager CacheManager (Redemplate <?,?> Redemplate) {RedisCacheManager CacheManager = New RedisCacheManager (Redemplate); cacheManager.SetDefaultExpiration (600); retour Cachemanager; }}Ok, c'est fait, il n'est pas nécessaire de changer autre chose, n'est-ce pas très pratique?
De plus, les classes à mettre en cache doivent être sérialisées.
Ce qui précède est tout le contenu de cet article. J'espère que cela sera utile à l'apprentissage de tous et j'espère que tout le monde soutiendra davantage Wulin.com.