SpringBoot2整合复述,缓存三步骤代码详解

  

<强>遵循SpringBoot三板斧
  

  

<强>第一步加依赖

        & lt; !——复述,比;   & lt; dependency>   & lt; groupId> org.springframework.boot   & lt; artifactId> spring-boot-starter-data-redis   & lt;/dependency>   & lt; !——复述,依赖commons-pool这个依赖一定要添加——比;   & lt; dependency>   & lt; groupId> org.apache.commons   & lt; artifactId> commons-pool2   & lt; version> 2.6.0   & lt;/dependency>      

<强>第二步写注解

  

@EnableCaching//开启缓存支持
  

  

<强>第三步写配置

        春天:   复述:   数据库:0   主持人:192.168.1.11   端口:6379   密码:   超时:600   生菜:   池:   max-active: 50   最大等待:1   最大空闲:8   min-idle: 0      

<强>编写复述,配置类

     /* *   * @Author:佐   * @Date: 2019/11/3 14:12   * @Description: SpringBoot2.0复述,缓存配置   * @EnableCaching:开启缓存支持   */@Slf4j   @ configuration   @EnableCaching   公开课RedisConfig延伸CachingConfigurerSupport {      @ value (" $ {sys.dataCaching.expireTime: 0} ")   私人int expireTime;      @   私人LettuceConnectionFactory LettuceConnectionFactory;      @Override   @ bean   公共KeyGenerator KeyGenerator(){//设置自定义关键{名称+ methodName + params}   返回(目标、方法、参数)→{   StringBuilder某人=new StringBuilder ();   sb.append (target.getClass () . getname ());   sb.append(“,方法:”);   sb.append (method.getName ());   sb.append (" Params [");   for (int i=0;我& lt;params.length;我+ +){   sb.append (params[我].toString ());   如果我!=(参数。长度- 1)){   sb.append (", ");   }   }   sb.append (“]”);   log.debug(“数据缓存复述,关键:{}”,sb.toString ());   返回sb.toString ();   };   }//自定义keyGenerator、关键生成器   @ bean   公共KeyGenerator updateByIdkeyGenerator () {   返回(目标、方法、参数)→{   StringBuilder某人=new StringBuilder ();   sb.append (target.getClass () . getname ());   sb.append(“,方法:”);   sb.append (“getById”);   sb.append (" Params [");   尝试{   字段id=params [0] .getClass () .getDeclaredField (" id ");   id.setAccessible(真正的);   sb.append (id.get (params [0]) .toString ());   }捕捉(IllegalAccessException e) {   e.printStackTrace ();   }捕捉(NoSuchFieldException e) {   e.printStackTrace ();   }   sb.append (“]”);   log.debug(“数据缓存复述,关键:{}”,sb.toString ());   返回sb.toString ();   };   }//自定义keyGenerator、关键生成器   @ bean   公共KeyGenerator deleteByIdkeyGenerator () {   返回(目标、方法、参数)→{   StringBuilder某人=new StringBuilder ();   sb.append (target.getClass () . getname ());   sb.append(“,方法:”);   sb.append (“getById”);   sb.append (" Params [");   for (int i=0;我& lt;params.length;我+ +){   sb.append (params[我].toString ());   如果我!=(参数。长度- 1)){   sb.append (", ");   }   }   sb.append (“]”);   log.debug(“数据缓存复述,关键:{}”,sb.toString ());   返回sb.toString ();   };   }         @ bean   公共缓存管理器缓存管理器(RedisConnectionFactory RedisConnectionFactory) {   RedisCacheConfiguration RedisCacheConfiguration=RedisCacheConfiguration.defaultCacheConfig ();//设置缓存过期时间   如果(expireTime比;0){   log.info(“复述,缓存过期时间:{}”,expireTime);//设置缓存有效期秒   redisCacheConfiguration.entryTtl (Duration.ofSeconds (expireTime));   其他}{   log.info(“复述,未设置缓存过期时间”);   }   返回RedisCacheManager   .builder (RedisCacheWriter.nonLockingRedisCacheWriter (redisConnectionFactory))   .cacheDefaults (redisCacheConfiguration) .build ();   }      @ bean   公共RedisTemplate<字符串,Object>redisTemplate (RedisConnectionFactory工厂){//创建redisTemplate//设置序列化   Jackson2JsonRedisSerializerjackson2JsonRedisSerializer=new Jackson2JsonRedisSerializer (   Object.class);   objectmap om=new objectmap ();   om.setVisibility (PropertyAccessor。所有,JsonAutoDetect.Visibility.ANY);   om.enableDefaultTyping (ObjectMapper.DefaultTyping.NON_FINAL);   jackson2JsonRedisSerializer.setObjectMapper (om);//配置redisTemplate   Object> RedisTemplate

SpringBoot2整合复述,缓存三步骤代码详解

Copyright © 2020-2023 feiqueyun.cn. All Rights Reserved. 肥雀云_南京肥雀信息技术有限公司版权所有 南京肥雀信息技术有限公司 苏ICP备16063723号-5