我注意到在Spring Boot中,很多人创建模型/实体并实现Serializable
接口。
public class ModelBase implements Serializable
我理解序列化数据/类的含义,它可以让你保存一个类的状态(如果我没错的话,比如保存到文件中)。
但我认为这只有在必要时才应该这样做,但无论如何人们似乎只是倾向于实现接口。
那么这是否有不同的原因呢?
我注意到在Spring Boot中,很多人创建模型/实体并实现Serializable
接口。
public class ModelBase implements Serializable
我理解序列化数据/类的含义,它可以让你保存一个类的状态(如果我没错的话,比如保存到文件中)。
但我认为这只有在必要时才应该这样做,但无论如何人们似乎只是倾向于实现接口。
那么这是否有不同的原因呢?
private static final long serialVersionUID = 9178661439383356177L;
根据JPA规范:
如果一个实体实例需要作为一个分离的对象(例如通过远程接口)进行传递,则实体类必须实现Serializable接口。
同时:
当使用可序列化的值时,可以通过两种方式更改实体类来消除冗余:
使实体类可序列化,以便在值类的位置使用它。
将关键字段设置为瞬态,以便不会在记录中冗余存储。
https://docs.oracle.com/cd/E17277_02/html/collections/tutorial/SerializableEntity.html