• Consider defining a bean of type 'redis.clients.jedis.JedisPool' in your configuration.


    报错信息

    原因是没有Jedispool没有注入

    import com.fasterxml.jackson.annotation.JsonAutoDetect;
    import com.fasterxml.jackson.annotation.PropertyAccessor;
    import com.fasterxml.jackson.databind.ObjectMapper;
    import org.apache.logging.log4j.LogManager;
    import org.apache.logging.log4j.Logger;
    import org.springframework.beans.factory.annotation.Value;
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;
    import org.springframework.data.redis.connection.RedisConnectionFactory;
    import org.springframework.data.redis.core.RedisTemplate;
    import org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer;
    import org.springframework.data.redis.serializer.StringRedisSerializer;
    import redis.clients.jedis.JedisPool;
    import redis.clients.jedis.JedisPoolConfig;
    
    import java.net.UnknownHostException;
    
    @Configuration
    public class RedisConfig
    {
    
        Logger logger = LogManager.getLogger(RedisConfig.class);
    
        @Value("${spring.redis.host}")
        private String host;
    
        @Value("${spring.redis.port}")
        private int port;
    
        @Value("${spring.redis.password}")
        private String password;
    
        @Value("${spring.redis.timeout}")
        private int timeout;
    
        @Value("${spring.redis.jedis.pool.max-idle}")
        private int maxIdle;
    
        @Value("${spring.redis.jedis.pool.max-wait}")
        private long maxWaitMillis;
    
        @Bean
        public JedisPool jedisPool()
        {
            logger.info("JedisPool注入成功!!");
            logger.info("redis地址:" + host + ":" + port);
    
            JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();
            jedisPoolConfig.setMaxIdle(maxIdle);
            jedisPoolConfig.setMaxWaitMillis(maxWaitMillis);
            return new JedisPool(jedisPoolConfig, host, port, timeout, password);
        }
    
        @Bean
        @SuppressWarnings("all")
        public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory redisConnectionFactory)
            throws
            UnknownHostException
        {
            // 自定义 String Object
            RedisTemplate<String, Object> template = new RedisTemplate();
            template.setConnectionFactory(redisConnectionFactory);
    
            // Json 序列化配置
            Jackson2JsonRedisSerializer<Object> objectJackson2JsonRedisSerializer =
                new Jackson2JsonRedisSerializer<Object>(Object.class);
            // ObjectMapper 转译
            ObjectMapper objectMapper = new ObjectMapper();
            objectMapper.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);
            objectMapper.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL);
            objectJackson2JsonRedisSerializer.setObjectMapper(objectMapper);
    
            // String 的序列化
            StringRedisSerializer stringRedisSerializer = new StringRedisSerializer();
    
            // key 采用String的序列化方式
            template.setKeySerializer(stringRedisSerializer);
            // hash 的key也采用 String 的序列化方式
            template.setHashKeySerializer(stringRedisSerializer);
            // value 序列化方式采用 jackson
            template.setValueSerializer(objectJackson2JsonRedisSerializer);
            // hash 的 value 采用 jackson
            template.setHashValueSerializer(objectJackson2JsonRedisSerializer);
            template.afterPropertiesSet();
    
            return template;
        }
    }
    查看一下自己的RedisConfig文件是否有这些内容

      

  • 相关阅读:
    水晶报表 VS2010 应用
    crystalreport使用方法
    spring MVC核心思想
    一台服务器配置多个TOMCAT
    SQL server索引
    锁机制
    JAVA书籍
    Live 直播过程
    html5 video微信浏览器视频不能自动播放
    设计模式 抽象工厂模式
  • 原文地址:https://www.cnblogs.com/qq1445496485/p/15128333.html
Copyright © 2020-2023  润新知