SpringBoot集成 Redis non null key required (已解决) 注意是不是给的 key 值或传过来的值是不是空的,如果是空的就会报这个错 接下来将流程走下去: 1、创建SpringBoot项目,将必要的包创建好 2、创建application.yml进行相关配置 server: port: 8080 servlet: context-path: / redis #mybatis配置 mybatis-plus: configuration: map-un redis : encode ({ bulk_string , << " test " >>). % array redis : encode ([ 1 , 2 , 3 ,<< " test " >>, { bulk_string , << " test " >>}]). % error redis : encode ({ error , << " my message " >>}). 使用 redis : 类似与上面的代码,如果 key 为空的时候,就会报“ non null key required ”异常 3、解决方案:在使用 Redis key 值以前,先做判断。如下图所示 String key = student.getID(); if ( key . @Around("@annotation(com.vcloud.wsi.common.CardResetDetect)") public Object doAround(ProceedingJoinPoint proceedingJoinPoint) throws Throwable { MethodSignature signature = (MethodSignature) proceedingJoinPoint.getSignature(); CardResetDetect annot 前端有调整,修复问题,提交前端代码后,后端没有提交任何代码和操作,仅重启一下服务,原有 Redis Util报错,导致后端和 Redis 有关服务全部不可用,报错信息大致如下: java.lang.IllegalArgumentException: non null hash key required at org.springframework.util.Assert.not Null (Assert.java:115) 根据不同的get或者是set方法报错不同,但是可以确定时 redis 问题,不过暂时没有解决 这个一般是 Redis 返回的错误,就是代码里面保存 redis 数据时空值造成的,比如下面: redis Template.opsForValue().set(user.getUserId(),s.getOrgId()); 若user.getUserId()是空时,也就是 key 值是空时,就会报上面的错。 这个错误通常是由于在Vue中使用v-for指令迭代列表时,没有给每个列表项提供唯一的键( key )属性所引起的。通过为每个循环项提供一个唯一键属性,你就可以解决“ non - null key required ”的错误,并确保Vue能够准确地追踪和更新列表项。解决方案:为了解决“ non - null key required ”的错误,你需要在使用v-for指令迭代列表时,为每个循环项提供一个唯一的键属性。2.2 使用索引作为键:如果你的数据源没有唯一标识符,你可以使用循环项在列表中的索引作为键。 刚开始是提示(错误:cannot find local variable 'e')然后我把这个提示直接“-”删了 然后就提示错误:(java.lang.IllegalArgumentException: non null key required ) 通过一步步查看整个执行过程,最后发现是因为返回值的方法里 key 为空的原因 方法set...