在搞spring security的时候,发现了这么个问题:
com.liang.security.entity.user.LoginUser cannot be cast to com.liang.security.entity.user.LoginUser
顿时头皮发麻。完了,我成替身了
这个场景是我将用户给缓存到redis之后,携带token请求的时候,从redis中取到对应用户。结果呢报了这个错误。
就是反序列化时,无法转为原来对象了
报错位置:
解决方案一
不使用spring-boot-devtools
热部署,这个原因呢是相关的类加载器的问题。热部署使用的类加载器和一开始启动时使用的类加载器不同,导致的问题。但是热加载不能用那可是十足的损失。
解决方案二
通过 Json
的方法转成想要的对象。
LoginUser loginUser = JSON.parseObject(JSON.toJSON(obj).toString(), LoginUser.class);
以上两种方式解决