Spring resume la interfaz Cachemanager para varias implementaciones de caché, y los usuarios usan esta interfaz para procesar cachés sin preocuparse por la implementación subyacente. También se puede cambiar convenientemente a la implementación específica del caché sin modificar el código de negocio. Aquí hay una breve introducción al uso de caché en Springboot:
1. Agregar dependencias
<Spendency> <MoupRupid> org.springframework.boot </groupid> <artifactID> spring-boot-starter-cache </artifactid> </dependency>
2. Encienda la caché en la clase de configuración, como se muestra en la figura a continuación:
3. Agregue anotaciones a los métodos que deben usarse, de la siguiente manera:
@Override // @Cacheput Esta anotación caché el valor de retorno del método, donde el nombre de la memoria caché es las personas y la clave de los datos es la identificación de la persona @cachePut (valor = "personas", key = "#persona.id") persona pública salvar (persona persona) {persona p = personaRepository.save (persona); System.out.println ("para ID, la tecla es:"+P.getID ()+"Datos en caché"); regreso p; } @Override // @cacheEvict Esta anotación eliminará los datos con la ID de clave en el caché de las personas @CacheEvict (value = "People", Key = "#id") public void remove (ID long) {System.out.println ("Eliminar el caché de datos con ID y KEY"+ID+""); // La operación de deleción real no se realiza aquí} @Override //@Cacheable Esta anotación determinará si el caché con la clave #persona.id en la gente de caché existe cuando se ejecuta el método. Si existe, devolverá directamente los datos en el caché. Si no existe, la base de datos se verificará y el resultado de retorno se almacenará en caché. @Cacheable (value = "People", Key = "#Person.id") Public Person Findone (Person Person) {Person P = PersonRepository.Findone (Person.getID ()); System.out.println ("para ID, la tecla es:"+P.getID ()+"Datos en caché"); regreso p; }Las piezas anteriores han completado el caché, pero el caché actual está basado en la memoria de forma predeterminada y no se ha persistido. La siguiente es una implementación específica de Redis como caché, como sigue:
4. Agregar dependencias
<Spendency> <MoupRoMID> org.springframework.boot </groupid> <artifactId> spring-boot-starter-redis </arfactid> </pendency>
5. Agregue la configuración de Redis en el archivo de configuración
redis.hostname = localhost redis.port = 6379
6. Configure Redis en el contenedor de primavera
@Configuration public class Redisconfig extiende CachingConfigursUpport {private static final logger = loggerFactory.getLogger (redisconfig.class); @Autowired Entorno privado Env; @Bean public JEdisconnectionFactory RedisconnectionFactory () {JEDISCONNECTIONFACTORY REDISCONNECTORY = new JEdisconnectionFactory (); redisConnectionFactory.sethostName (env.getProperty ("redis.hostname")); redisConnectionFactory.setPort (Integer.ParseInt (env.getProperty ("redis.port"))); return redisconnectionFactory; } @Bean public redistemplate <String, String> redistemplate (redisConnectionFactory cf) {redistemplate <string, string> redistemplate = new Redistemplate <> (); redistemplate.setConnectionFactory (CF); regresar redistemplate; } @Bean public Cachemanager Cachemanager (redistemplate <?,?> Redistemplate) {redisCachemanager Cachemanager = new Rediscachemanager (redistemplate); Cachemanager.setDefaultExpiration (600); Volver a Cachemanager; }}Ok, está hecho, no hay necesidad de cambiar nada más, ¿no es muy conveniente?
Además, las clases a almacenar en caché deben ser serializadas.
Lo anterior es todo el contenido de este artículo. Espero que sea útil para el aprendizaje de todos y espero que todos apoyen más a Wulin.com.