声明类时需要实现Serializable接口吗?
Posted
技术标签:
【中文标题】声明类时需要实现Serializable接口吗?【英文标题】:It is required to implement Serializable interface when declaring a class? 【发布时间】:2020-06-18 15:11:02 【问题描述】:在使用 Spring 编码时,我总是看到大多数开发人员实现了 Serializable 接口。所以,我想知道为什么在类的所有声明中使用此实现的原因。谢谢!
【问题讨论】:
此链接:Spring MVC - should my domain classes implement Serializable? 是否回答了您的问题? 【参考方案1】:序列化不是 Spring 特有的功能。您使用序列化通过网络传输对象或存储在文件系统中。
但是根据有效的java,序列化是危险的,由于安全漏洞,不应该不惜一切代价使用。 序列化的另一个缺点是,当您向公众发布新版本的类时,您需要确保支持旧的反序列化类。
故事的寓意:永远不要在代码中使用序列化。欲了解更多信息,请阅读有效 Java 书籍的第 12 章。
【讨论】:
这个答案似乎完美地证明了问题本身吸引了意见。作为任何强力工具,序列化有其优点和缺点,它被广泛用于许多库和技术中。正如 Brian Goetz 在his exploratory article 中所说:需要明确的是,序列化的概念 没有任何问题;将对象转换为可以轻松跨 JVM 传输并在另一端重构的形式的能力是一个完全合理的想法。 尽管有种种罪过以上是关于声明类时需要实现Serializable接口吗?的主要内容,如果未能解决你的问题,请参考以下文章