redis RedisTemplate 空指针 为null 奇怪的解决方法
如果配置,没有用 注解没用,就看一下他
·
学了蛮久的,突然今天要搞一下这个先放截图
我是打印了取值,为null 之前是空指针异常 ,网上说法众多 ,说因为配置文件有两个 1..@Autowoid 或者@Seruce 出错或者别的,我都试了一遍,结果都不行;
痛定思痛,我发现了华点 我们首先不要从redis存储数据,要用Idea存储数据
public Map<String,Object> gettt(){
//存储数据
redisTemplate.opsForHash().put("1006", "bzq", 2022-7-8);
redisTemplate.opsForHash().put("1006", "name", "安倍晋三死了");
redisTemplate.opsForHash().put("1006", "dianzan", 11100);
redisTemplate.opsForHash().put("1007", "bzq", 2022-7-7);
redisTemplate.opsForHash().put("1007", "name", "七七事变纪念");
redisTemplate.opsForHash().put("1007", "dianzan", 1112);
redisTemplate.opsForHash().put("1008", "bzq", 2022-7-8);
redisTemplate.opsForHash().put("1008", "name", "俄乌冲突");
redisTemplate.opsForHash().put("1008", "dianzan", 1118);
//
ArrayList<Food> list = new ArrayList<>();
//这里数据类型是zset
Set<String>topn = redisTemplate.opsForZSet().reverseRange("topn", 0,-1);
for (Object o :topn.toArray()){
//遍历获取 数据类型是hash
String key = String.valueOf(o);
Food f = new Food();
Object a = redisTemplate.opsForHash().get(key, "name");
Object a1 = redisTemplate.opsForHash().get(key, "bzq");
Object a2 = redisTemplate.opsForHash().get(key, "dianzan");
Integer oi = (Integer) o;
f.setId(oi);
f.setName(a.toString());
f.setBzq(a1.toString());
f.setDianzan((Integer)a2);
list.add(f);
}
//返回数据
HashMap<String,Object> map = new HashMap<>();
map.put("code","0");
map.put("msg","成功");
map.put("count","10");
map.put("data",list);
return map;
}
总结: 一定要自己存数据 ,可能数据不互通导致你的数据获取不到,所以都试了一遍没有作用就用这个
更多推荐
已为社区贡献1条内容
所有评论(0)