第一个错误:显示“No beans of ‘RedisTemplate’ type found. ”

试了两种解决方案:一:把@Autowired注解改为@Resource按照名字注入

                            二:仍使用@Autowired,新增自定义RedisConfig配置类,自定义Bean

如下代码:

@Bean
public RedisTemplate<string,object> redisTemplate(RedisConnectionFactory factory) {

RedisTemplate<string,object> template = new RedisTemplate<string,object deep="7">();

//连接工厂
template.setConnectionFactory(factory);
GenericJackson2JsonRedisSerializer jsonRedisSerializer = new GenericJackson2JsonRedisSerializer();
// key采用String的序列化方式
template.setKeySerializer(new StringRedisSerializer());

// hash的key也采用String的序列化方式
template.setHashKeySerializer(new  StringRedisSerializer());


// value序列化方式采用jackson
template.setValueSerializer(jsonRedisSerializer);

// hash的value序列化方式采用jackson
template.setHashValueSerializer(jsonRedisSerializer);

template.afterPropertiesSet();
return template;

}</string,object></string,object></string,object>
新增配置类之后我又出现了第二个问题找不到RedisConnectionFactory的问题。

第二个问题:找不到RedisConnectionFactory

解决方案:以lettuce为例,首先肯定要导入maven坐标

“spring-boot-starter-data-redis”,

“commons-pool2”

以及application.yml的配置

redis:
host: 127.0.0.1
port: 6379
database: 0
lettuce:
pool:
max-active: 8
max-idle: 8
max-wait: 100
min-idle: 0
最后在刚刚redis配置类中加入自定义bean“RedisConnectionFactory”

@Bean
public RedisConnectionFactory redisConnectionFactory() {
LettuceConnectionFactory lettuceConnectionFactory = new LettuceConnectionFactory();
return lettuceConnectionFactory;
}
我这就完美解决了。

同样对于jedis,我又新导入了“jedis”maven坐标,

将配置类中 new LettuceConnectionFactory();改为jedis就可以。
文章转自:springboot整合redis,测试遇到的坑_Java-答学网

作者:答学网,转载请注明原文链接:http://www.dxzl8.com/

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐