A项目往redis存数据,B项目取不到的解决方案

 我往A项目中存了LoginUser类型的数据,

在A项目中取数据可以直接取。但是到了B项目中,就取不到了

这是因为:

 redis中存的是复杂对象,对这个复杂对象进行反序列化,要有他的完全限定名。

Java的默认序列化机制会记录类的完全限定名(包括包名),在反序列化时也需要找到这个类。这意味着如果类的包名或者类路径不同,就会导致反序列化失败。

为了避免这些问题,通常会使用一种更通用的数据格式,比如JSON、XML或Protocol Buffers,这些格式不会携带类的限定名,只包含数据本身。通过这种方式,我们可以避免因类路径不同导致的反序列化失败。

 

所以我们在存入redis之前,对复杂对象LoginUser进行json转化

 取的时候再转化回来

 这样就可以解决B项目取不到的问题。

posted @ 2024-06-13 15:37  斑马还不想睡  阅读(30)  评论(0编辑  收藏  举报