为什么在模型上实现Serializable?

时间:2018-02-19 15:58:25

标签: java spring spring-boot serialization deserialization

我注意到在Spring-boot中很多人创建了模型/实体并实现了Serialiazable接口。

public class ModelBase implements Serializable 

我理解序列化数据/类意味着什么,因为它使您能够保存类的状态(例如,如果我没有错,则保存到文件中)。

但我相信只有在必要时才应该这样做,但无论哪种方式,人们似乎都倾向于实现界面。

有不同的原因吗?

1 个答案:

答案 0 :(得分:0)

如果您的模型或实体要跨越多个JVM,那么您可能需要考虑实现Serializable接口。你应该谨慎行事。您还应该为序列化期间要使用的类提供有效的UUID,反之亦然。

示例

private static final long serialVersionUID = 9178661439383356177L;

并且

根据JPA规范:

如果要将实体实例作为分离对象(例如,通过远程接口)传递,则实体类必须实现Serializable接口。

另外

使用可序列化值时,可以通过两种方式更改实体类来删除此冗余:

使实体类可序列化,因此可以用它来代替值类。

使关键字段成为瞬态,因此它们不会冗余地存储在记录中。

https://docs.oracle.com/cd/E17277_02/html/collections/tutorial/SerializableEntity.html