文档章节

java 序列化

wtog
 wtog
发布于 2015/07/19 17:16
字数 521
阅读 71
收藏 2

最近开发用到redis,未曾了解过redis的我开始看文档,看文档,看文档。。。
作为一只java monkey,很自然的选用了 spring-data -redis , 然后看文档,看文档,看文档。。。

当需要把一个对象以hash存储在redis中时候,我是很轻松愉快的写完了
然后写测试用例,相应的实体bean属性存值居然为null,debug多次,发现还是null值,快炸毛了。。。

google,google,google...

发现 spring-data-redis 存数据的时候要序列化,取数据的时候要反序列化,欲知详情,请访问  http://www.oschina.net/question/163220_141069

于是找到我的bean类,将其 implements Serializable 感觉这下应该 test success 了,
可但是,还特么是null。。。

这时大神同事来救急了,见我的bean类已经实现了序列化接口,安静了片刻,去看bean的父类fatherbean,父类fatherbean 并没有implements Serializable,然后他果断将父类fatherbean implements Serializable, 再一测,这时真正的 test success 了,然后华丽丽的他走了,扔给我一本书,好好看看 java 的序列化机制。。。

那么书上是这么说的。。

当父类继承serializable 接口时,所有的子类都可以被序列化
子类实现了serializable接口,父类没有,父类中的属性不能被序列化(不报错,数据会丢失),但是在子类中属性仍能正确序列化。
如果序列化的属性是对象,则这个对象也必须实现serializable接口,否则会报错
在反序列化时,如果对象的属性有修改或删减,则修改的部分属性会丢失,但不会报错
在反序列化时,如果serialVersionUID被修改,则反序列化时回失败

啊,又涨姿势了~~

本次的bug还是让我消耗了一些时间,问题出在哪了?
仔细想想,
1.解决问题思路不对(居然怀疑redisTemplate,光debug它的 source code 了)
2.技术积累存在盲点

要养成 遇到问题,解决问题,总结问题的好习惯啊~ 

© 著作权归作者所有

wtog
粉丝 10
博文 25
码字总数 16975
作品 0
朝阳
程序员
私信 提问
Android Serializable与Parcelable原理与区别

一、序列化、反序列化是什么? (1) 名词解释 对象的序列化 : 把Java对象转换为字节序列并存储至一个储存媒介的过程。 对象的反序列化:把字节序列恢复为Java对象的过程。 (2) 序列化详细解释 ...

KingMing
2015/04/16
241
0
Java序列化技术即将被废除!!!

我们的对象并不只是存在内存中,还需要传输网络,或者保存起来下次再加载出来用,所以需要Java序列化技术。Java序列化技术正是将对象转变成一串由二进制字节组成的数组,可以通过将二进制数据...

Java技术栈
2018/05/30
140
0
什么是 java 序列化?什么情况下需要序列化?

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 https://blog.csdn.net/meism5/article/details/90413987 序列化:将 Java 对象转换成字节流...

ConstXiong
06/17
0
0
序列化框架比较:kryo & hessian & Protostuff & java

序列化框架性能对比(kryo、hessian、java、protostuff) 简介: 优点 缺点 Kryo 速度快,序列化后体积小 跨语言支持较复杂 Hessian 默认支持跨语言 较慢 Protostuff 速度快,基于protobuf ...

鉴客
2013/03/04
11.2K
0
Java序列化与JSON序列化大比拼

一、背景 有项目需要传输Map结构的数据,有人倾向用Java序列化来做,有人倾向用JSON的序列化来做。所以我们还是比比吧。 Java观点:Object2Object,使用时简单快速。 JSON观点:JSON格式与语...

NoahX
2013/03/10
19.8K
20

没有更多内容

加载失败,请刷新页面

加载更多

mysql-connector-java升级到8.0后保存时间到数据库出现了时差

在一个新项目中用到了新版的mysql jdbc 驱动 <dependency>     <groupId>mysql</groupId>     <artifactId>mysql-connector-java</artifactId>     <version>8.0.18</version> ......

ValSong
今天
5
0
Spring Boot 如何部署到 Linux 中的服务

打包完成后的 Spring Boot 程序如何部署到 Linux 上的服务? 你可以参考官方的有关部署 Spring Boot 为 Linux 服务的文档。 文档链接如下: https://docs.ossez.com/spring-boot-docs/docs/r...

honeymoose
今天
6
0
Spring Boot 2 实战:使用 Spring Boot Admin 监控你的应用

1. 前言 生产上对 Web 应用 的监控是十分必要的。我们可以近乎实时来对应用的健康、性能等其他指标进行监控来及时应对一些突发情况。避免一些故障的发生。对于 Spring Boot 应用来说我们可以...

码农小胖哥
今天
9
0
ZetCode 教程翻译计划正式启动 | ApacheCN

原文:ZetCode 协议:CC BY-NC-SA 4.0 欢迎任何人参与和完善:一个人可以走的很快,但是一群人却可以走的更远。 ApacheCN 学习资源 贡献指南 本项目需要校对,欢迎大家提交 Pull Request。 ...

ApacheCN_飞龙
今天
5
0
CSS定位

CSS定位 relative相对定位 absolute绝对定位 fixed和sticky及zIndex relative相对定位 position特性:css position属性用于指定一个元素在文档中的定位方式。top、right、bottom、left属性则...

studywin
今天
9
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部