SpringBoot复述,缓存数据的示例分析

  介绍

这篇文章主要介绍了SpringBoot复述,缓存数据的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获、下面让小编带着大家一起了解一下。

SpringBoot是什么

SpringBoot一种全新的编程规范,其设计目的是用来简化新弹簧应用的初始搭建以及开发过程,SpringBoot也是一个服务于框架的框架,服务范围是简化配置文件。

1。启用对缓存的支持

春对缓存的支持有两种方式:

。注解驱动的缓存

b.XML声明的缓存

本文主要介绍纯Java配置的缓存,那么必须在配置类上添加@EnableCaching,这样的话就能启动注解驱动的缓存。

2。使用复述,缓存

缓存的条目不过是一个键值对(键值),其中关键描述了产生价值的操作和参数,因此会很自然的想到复述。

复述,可以用来为srp缓存抽象机制缓存条目,Spring-Data-Redis提供了RedisCacheManager,这是缓存管理器的一个实现.RedisCacheManager会与复述,服务器协作,通过RedisTemplate将缓存条目储存到复述中。

为了使用RedisCacheManager,我们需要RedisTmeplate豆配置以及RedisConnectionFactory实现类(JedisConnectionFactory Bean配置).

3 .配置将缓存条目存储在复述,服务器的缓存管理器。

前提需要在砰的一声。xml引入

& lt; !——redis ——比;   & lt; dependency>   & lt; groupId> org.springframework.boot   & lt; artifactId> spring-boot-starter-data-redis   & lt;/dependency>

在应用程序。属性中配置复述,连接相关参数

#配置复述   #在RedisProperties.class有复述的默认配置,默认主人为localhost,默认端口为6379   spring.redis.host=127.0.0.1   spring.redis。端口=6379

配置缓存管理器

package  com.niugang;   import  java.lang.reflect.Method;   import  org.springframework.cache.CacheManager;   import  org.springframework.cache.annotation.EnableCaching;   import  org.springframework.cache.interceptor.KeyGenerator;   import  org.springframework.context.annotation.Bean;   import  org.springframework.context.annotation.Configuration;   import  org.springframework.data.redis.cache.RedisCacheManager;   import  org.springframework.data.redis.connection.jedis.JedisConnectionFactory;   import  org.springframework.data.redis.core.RedisTemplate;   import  org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer;   import  org.springframework.data.redis.serializer.StringRedisSerializer;   import  com.fasterxml.jackson.annotation.PropertyAccessor;   import  com.fasterxml.jackson.databind.ObjectMapper;   import  com.fasterxml.jackson.annotation.JsonAutoDetect;         @ configuration//没有@EnableCaching这个注解的话,代码不会报的错,就是内容不会放入复述中      @EnableCaching       public  class  RedisConfig  {/* *   *,緩存管理器,不管用什么的缓存,都必须有缓存管理器   */@ bean   public  CacheManager 缓存管理器(),{   RedisCacheManager  RedisCacheManager =, new  RedisCacheManager (redisTemplate ());/*   *,设置缓存保留的时间,默认是永久保存   */redisCacheManager.setDefaultExpiration (60);   return  redisCacheManager;   }         @ bean   public  JedisConnectionFactory  jedisConnectionFactory (), {   JedisConnectionFactory  JedisConnectionFactory =, new  JedisConnectionFactory ();   jedisConnectionFactory.afterPropertiesSet ();   return  jedisConnectionFactory;      }      ,,/* *   *,复述,默认对象序列化是通过jdk来序列化的,这里面不用默认序列化方式,用JackJson进行序列化   *,   *,设置关键的类型为字符串类型   *,   *,@return   */@ bean   @SuppressWarnings ({,“rawtypes",,“unchecked",})   public  RedisTemplate<字符串,String>, redisTemplate (), {   字符串,RedisTemplate, redisTemplate =, new  RedisTemplate<字符串,,String> ();      redisTemplate.setConnectionFactory (jedisConnectionFactory ());      ,,,,//,使用Jackson2JsonRedisSerialize 替换默认序列化   Jackson2JsonRedisSerializer  Jackson2JsonRedisSerializer =, new  Jackson2JsonRedisSerializer (Object.class);   ObjectMapper  ObjectMapper =, new  objectmap ();   objectMapper.setVisibility (PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);   objectMapper.enableDefaultTyping (ObjectMapper.DefaultTyping.NON_FINAL);   jackson2JsonRedisSerializer.setObjectMapper (objectmap);//,设置值的序列化规则和,关键的序列化规则   redisTemplate.setValueSerializer (jackson2JsonRedisSerializer);   redisTemplate.setKeySerializer (new  StringRedisSerializer ());   redisTemplate.afterPropertiesSet ();   return  redisTemplate;      }/* *   ,,*,生产关键的策略   ,,* @return   ,,*/@Bean    public 才能;KeyGenerator  wiselyKeyGenerator () {,   ,,,return  new  KeyGenerator (), {,   ,,,,,@Override    ,,,,,public  Object 生成(目标,Object  Method 方法,对象…,params), {,   ,,,,,,,StringBuilder  sb =, new  StringBuilder (),,   ,,,,,,,sb.append (target.getClass () . getname ()),,   ,,,,,,,sb.append (method.getName ()),,   ,,,,,,,for  (Object  obj : params), {,   ,,,,,,,,,sb.append (obj.toString ()),,   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null

SpringBoot复述,缓存数据的示例分析