springboot+mybatis+redis

Posted imaye

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了springboot+mybatis+redis相关的知识,希望对你有一定的参考价值。

  1. redis类似乱码问题,可修redisTemplate 的配置,配置如下
    @Configuration
    @EnableCaching
    @EnableAutoConfiguration
    public class RedisConfiguration extends CachingConfigurerSupport 
        /**
         * 自定义生成key的规则
         */
        @Override
        public KeyGenerator keyGenerator() 
            return new KeyGenerator() 
                @Override
                public Object generate(Object o, Method method, Object... objects) 
                    //格式化缓存key字符串
                    StringBuilder sb = new StringBuilder();
                    //追加类名
                    sb.append(o.getClass().getName());
                    //追加方法名
                    sb.append(method.getName());
                    //遍历参数并且追加
                    for (Object obj : objects) 
                        sb.append(obj.toString());
                    
                    System.out.println("调用Redis缓存Key : " + sb.toString());
                    return sb.toString();
                
            ;
        
    
        /**
         * 采用RedisCacheManager作为缓存管理器
         * @param connectionFactory
         */
        @Bean
        public CacheManager cacheManager(RedisConnectionFactory connectionFactory) 
            RedisCacheManager redisCacheManager = RedisCacheManager.create(connectionFactory);
            return  redisCacheManager;
        
    
        @Bean
        public RedisTemplate<String, String> redisTemplate(RedisConnectionFactory factory) 
            StringRedisTemplate redisTemplate = 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);
            //设置完这个可以直接将对象以json格式存入redis中,但是取出来的时候要用JSON.parseArray(Json.toJsonString(object),Object.class)解析一下
            redisTemplate.setValueSerializer(jackson2JsonRedisSerializer);
            redisTemplate.setHashValueSerializer(jackson2JsonRedisSerializer);
            //调用后完成设置
            redisTemplate.afterPropertiesSet();
            return redisTemplate;
        
    
    
    

    遇到的问题:原先在springboot启动类中添加叻@ComponentScan并且没有扫描@Configuration中的类,导致redisTemplate配置失败,添加扫描路径即可。

以上是关于springboot+mybatis+redis的主要内容,如果未能解决你的问题,请参考以下文章

mybatise

mybatise 动态sql

mybatise 设置全局变量实例

redis集群代建

基于springboot实现快递代取管理系统

基于springboot实现快递代取管理系统