JavaBean为什么需要序列化?
无论用hibernate或者mybatis结合spring做开发还是其他,系统里持久类往往要实现序列化,implements Serinalizable。为什么呢?
为什么要实现序列化原因总结如下:
1、Hibernate使用组件最为复合主键时,该组件类必须满足一个条件就是:实现Serinalizable接口。
2、Mybatis中配置缓存时,持久层需实现序列化,缓存元素<cache>
有个readOnly属性,readOnly属性可以被设置为true或者false。只读缓存将对所有调用者返回同一个实例,因此都不能被修改,这可以极大的提高性能,可写的缓存将通过序列化来返回一个缓存元素的拷贝,这会比较慢,但是比较安全。
3、持久存储,将对象的状态保存在存储媒体中以便可以在以后重新创建出完全相同的副本。
4、按值封送,尤其是在分布式系统中,如果对象标记为Serinalizable,则该对象将被自动序列化,并从一个应用程序域传输到另一个应用程序域,然后进行反序列化,从而在第二个应用程序域中产生该对象的一个精确副本。
实现Serinalizable接口的作用就是可以把对象存到字节流,然后可以恢复!
所以你想如果你的对象没实现序列化怎么才能进行网络传输和数据存储呢,要网络传输就得转为字节流,所以在分布式应用中,你就得实现序列化,如果你不需要分布式应用,那就没那个必要实现序列化。
还没有评论,来说两句吧...