A项目往redis存数据,B项目取不到的解决方案
我往A项目中存了LoginUser类型的数据,
在A项目中取数据可以直接取。但是到了B项目中,就取不到了
这是因为:
redis中存的是复杂对象,对这个复杂对象进行反序列化,要有他的完全限定名。
Java的默认序列化机制会记录类的完全限定名(包括包名),在反序列化时也需要找到这个类。这意味着如果类的包名或者类路径不同,就会导致反序列化失败。
为了避免这些问题,通常会使用一种更通用的数据格式,比如JSON、XML或Protocol Buffers,这些格式不会携带类的限定名,只包含数据本身。通过这种方式,我们可以避免因类路径不同导致的反序列化失败。
所以我们在存入redis之前,对复杂对象LoginUser进行json转化
取的时候再转化回来
这样就可以解决B项目取不到的问题。