Cannot invoke "org.springframework.data.redis.core.RedisTemplate.opsForValue()" because "this.redisTemplate" is null怎么解决
时间: 2023-12-11 18:04:33 浏览: 485
这个错误的原因是RedisTemplate对象没有被正确注入,可能是因为没有在配置文件中配置RedisTemplate或者没有在代码中注入RedisTemplate对象。解决方法如下:
1. 确认是否已经在配置文件中配置了RedisTemplate,如果没有,可以参考下面的配置:
```
@Configuration
public class RedisConfig {
@Bean
public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory factory) {
RedisTemplate<String, Object> template = new RedisTemplate<>();
template.setConnectionFactory(factory);
template.setKeySerializer(new StringRedisSerializer());
template.setValueSerializer(new GenericJackson2JsonRedisSerializer());
return template;
}
}
```
2. 确认是否已经在代码中注入了RedisTemplate对象,可以使用@Autowired注解进行注入:
```
@Service
public class RedisService {
@Autowired
private RedisTemplate<String, Object> redisTemplate;
public void setValue(String key, Object value) {
redisTemplate.opsForValue().set(key, value);
}
public Object getValue(String key) {
return redisTemplate.opsForValue().get(key);
}
}
```
如果还是无法解决问题,可以检查一下Redis的连接是否正常,Redis服务是否启动等问题。
阅读全文