spring boot 中 redis 缓存的简单使用

1 添加redis支持

在pom.xml中添加

Xml代码   收藏代码

    <dependency>  

          <groupId>org.springframework.boot</groupId>  

          <artifactId>spring-boot-starter-redis</artifactId>  

      </dependency>  

2 redis配置

@Configuration  

@EnableCaching  

public class RedisConfig extends CachingConfigurerSupport{  

  @Bean  

 public KeyGenerator wiselyKeyGenerator(){  

        return new KeyGenerator() {  

           @Override   

           public Object generate(Object target, Method method, Object... params) {  

              StringBuilder sb = new StringBuilder();  

               sb.append(target.getClass().getName());  

               sb.append(method.getName());  

               for (Object obj : params) {  

                  sb.append(obj.toString());  

              }  

            return sb.toString();  

           }  

        };  

    }  

  

   @Bean   

    public CacheManager cacheManager(  

            @SuppressWarnings("rawtypes") RedisTemplate redisTemplate) {  

       return new RedisCacheManager(redisTemplate);  

   }    

    @Bean  

    public RedisTemplate<String, String> redisTemplate(  

            RedisConnectionFactory factory) {  

        StringRedisTemplate template = new StringRedisTemplate(factory);  

        Jackson2JsonRedisSerializer jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer(Object.class);  

        ObjectMapper om = new ObjectMapper();  

       om.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);  

        om.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL);  

        jackson2JsonRedisSerializer.setObjectMapper(om);  

        template.setValueSerializer(jackson2JsonRedisSerializer);  

        template.afterPropertiesSet();  

        return template;  

    }  

3 redis服务器配置

Properties代码   收藏代码

# REDIS (RedisProperties)  

spring.redis.database= # database name  

spring.redis.host=localhost # server host  

spring.redis.password= # server password  

spring.redis.port=6379 # connection port  

spring.redis.pool.max-idle=8 # pool settings ...  

spring.redis.pool.min-idle=0  

spring.redis.pool.max-active=8  

  • spring.redis.pool.max-wait=-1  

4 应用

 /**
     * 
     * value 缓存的名称 , keyGenerator = 生成key的方法  , 生成的key字符串 作为 Map中的key
     * @param map
     * @return
     */
    @RequestMapping(value = "/query/querySample", method = RequestMethod.POST)
    @ResponseBody
    @Cacheable(value = "querySampleCache", keyGenerator = "keyGenerator")
    public ModelMap querySample(@RequestParam(required = false) String s_code) {
        ModelMap map = new ModelMap();
        if (StringUtils.isBlank(s_code)) {
            map.addAttribute("code", false);
            map.addAttribute("message", "参数为空");
            return map;
        }

        try {
            SampleVo sampleVo = sampleManager.getSample(s_code);
            map.addAttribute("code", true);
            map.addAttribute("message", "查询成功!");
            map.addAttribute("data", sampleVo);
        } catch (Exception e) {
            map.addAttribute("code", false);
            map.addAttribute("message", "查询异常!");
        }
        return map;
    }
 

猜你喜欢

转载自my.oschina.net/u/3820486/blog/1813023