是否会添加注释中断Java Serialization?

时间:2016-04-18 11:29:31

标签: 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;
      private String name;
      //getters and setters...
}

此课程通过网络进行序列化,并包含在" common" 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...
}

我的问题是:如果调用者(反序列化上面的对象)在他的类路径中有这些注释,序列化是否会失败?

1 个答案:

答案 0 :(得分:0)

只有带有RETENTION的注释= RUNTIME在字节代码中使用,但序列化适用于对象字段,而不是类。

但重要的是要了解自定义序列化程序可以使用注释。 例如,这就是@Transient排除的实现方式。

所以下一步是检查使用什么类型的序列化机制。

ELAD