添加注释会破坏Java序列化吗?
我正在将一个非常旧的java应用程序重写为Spring Boot和Hibernate 5。这个任务的一部分要求我用注释替换XML配置(Spring和Hibernate) 我有以下问题。假设应用程序包含这样一个类:添加注释会破坏Java序列化吗?,java,serialization,annotations,Java,Serialization,Annotations,我正在将一个非常旧的java应用程序重写为Spring Boot和Hibernate 5。这个任务的一部分要求我用注释替换XML配置(Spring和Hibernate) 我有以下问题。假设应用程序包含这样一个类: public class MyObject implements Serializable { private static final long serialVersionUID = 81848571841847187L; private String id;
public class MyObject implements Serializable {
private static final long serialVersionUID = 81848571841847187L;
private String id;
private String name;
//getters and setters...
}
该类通过网络序列化,并包含在“公共”jar中,为了在其端进行反序列化,类必须包含该jar
假设我在类中添加了一些Hibernate和JPA注释
@Table(...)
@Entity
public class MyObject implements Serializable {
private static final long serialVersionUID = 81848571841847187L;
@Id
@Column(...)
private String id;
@Column(...)
private String name;
//getters and setters...
}
我的问题是:如果调用方(对上述对象进行反序列化的调用方)的类路径中没有这些注释,序列化会失败吗?字节码中只使用RETENTION=RUNTIME的注释,但序列化可用于对象字段,而不是类 但重要的是要理解注释可以由自定义序列化程序使用。 例如,这就是@Transient exclusion的实现方式 因此,下一步是检查所使用的序列化机制的类型 埃拉德