SpringBoot整合复述,注解方式

  

1。首先导入使用Maven导入jar包


 & lt; dependency>
  & lt; groupId> org.springframework.boot
  & lt; artifactId> spring-boot-starter-data-redis
  & lt;/dependency>
  & lt; dependency>
  & lt; groupId> com.alibaba
  & lt; artifactId> fastjson
  & lt; version> 1.2.62
  & lt;/dependency> 


2。在应用程序。属性配置信息


 #复述,数据库索引(默认为0)
  spring.redis.database=0
  #复述,服务器地址
  spring.redis.host=localhost
  #复述,服务器连接端口
  spring.redis.port=6379
  #复述,服务器连接密码(默认为空)
  spring.redis.password=123456
  #连接池最大连接数(使用负值表示没有限制)
  spring.redis.pool.max-active=200
  #连接池最大阻塞等待时间(使用负值表示没有限制)
  spring.redis.pool.max-wait=1
  # 连接池中的最大空闲连接
  spring.redis.pool.max-idle=10
  #连接池中的最小空闲连接
  spring.redis.pool.min-idle=0
  #连接超时时间(毫秒)
  spring.redis。timeout=1000 ms 


3。编写复述,工具类


 @ configuration
  @ConditionalOnClass (RedisOperations.class)//系统中有RedisOperations类时
  @EnableConfigurationProperties (RedisProperties.class)//启动RedisProperties这个类
  @EnableCaching//www.1b23.com
  公开课RedisConfig延伸CachingConfigurerSupport {
  @ autowired
  RedisTemplate RedisTemplate;//配置缓存管理器
  @ bean
  公共RedisCacheManager缓存管理器(RedisConnectionFactory connectionFactory) {
  LettuceConnectionFactory jedisConnectionFactory=(LettuceConnectionFactory) redisTemplate.getConnectionFactory ();
  jedisConnectionFactory.setDatabase (2);//指定dbindex
  redisTemplate.setConnectionFactory (jedisConnectionFactory);
  jedisConnectionFactory.resetConnection ();
  
  RedisCacheConfiguration配置=RedisCacheConfiguration.defaultCacheConfig ()
  .entryTtl (Duration.ofSeconds(60 * 20))//20分钟缓存失效//设置关键的序列化方式//.entryTtl (Duration.ofSeconds (10))
  新StringRedisSerializer .serializeKeysWith (RedisSerializationContext.SerializationPair.fromSerializer (()))//设置值的序列化方式
  .serializeValuesWith (RedisSerializationContext.SerializationPair.fromSerializer(新FastJsonRedisSerializer (Object.class)))//不缓存零值
  .disableCachingNullValues ();
  RedisCacheManager RedisCacheManager=RedisCacheManager.builder (connectionFactory)
  .cacheDefaults(配置)
  .transactionAware ()
  .build ();
  返回redisCacheManager;
  }
  }


<>之前包com.FireService.config;      进口charset;      进口org.springframework.data.redis.serializer.RedisSerializer;   进口org.springframework.data.redis.serializer.SerializationException;      进口com.alibaba.fastjson.JSON;   进口com.alibaba.fastjson.parser.ParserConfig;   进口com.alibaba.fastjson.serializer.SerializerFeature;      公开课FastJsonRedisSerializer实现RedisSerializer{      公共静态最终字符集DEFAULT_CHARSET=Charset.forName (“utf - 8”);      私人Classclazz;   静态{   ParserConfig.getGlobalInstance () .addAccept (“com.FireService”);   }   公共FastJsonRedisSerializer (Classclazz) {   超级();   这一点。clazz=clazz;   }      @Override   公共byte[]序列化(T T)抛出SerializationException {   如果(null==t) {   返回新字节[0];   }   返回JSON。SerializerFeature.WriteClassName toJSONString (t) .getBytes (DEFAULT_CHARSET);   }      @Override   公共T反序列化(byte[]字节)抛出SerializationException {   如果(null字节==| |字节。长度& lt;=0) {   返回null;   }   字符串str=新的字符串(字节,DEFAULT_CHARSET);   (T)返回JSON。parseObject (str, clazz);   }      }


4。SpringBoot有关缓存的几个注解

@Cacheable:查询

可选属性:

cacheNames/价值:指定缓存组件的名字。

关键:缓存数据使用的钥匙,可以用来指定。默认即使用方法参数的值

keyGenerator:关键的生成器,可以自己指定关键的生成器的组件id

 SpringBoot整合复述,注解方式

//自定义配置类配置keyGenerator
  @ configuration
  公开课MyCacheConfig {
  @ bean (“myKeyGenerator”)
  公共KeyGenerator KeyGenerator () {
  返回新KeyGenerator () {
  @Override
  公共对象生成(对象目标,方法方法,对象……params) {
  返回method.getName () +”(“+ arrays . aslist (params) .toString () +”)”;
  }
  };
  }
  }

SpringBoot整合复述,注解方式