我应该为我的 DTO 使用 Serializable 吗?为什么要使用?
Should I use Serializable for my DTO and why should I use?
据我所知,在需要反序列化时应该使用Serializable,例如在 API 中使用 dto 作为 return 对象。但是我应该对整个 DTO 对象使用 Serializable 还是只对一般对象使用 Serializable?
@Data
@AllArgsConstructor
public class GaDTO implements Serializable {
private static final long serialVersionUID = -xxxx;
private String id;
private GaStatus gaStatus;
private PlaTurn plaTurn;
private PlaDTO pla1;
private PlaDTO pla2;
}
此 DTO 是 ResponseEntity
的 return 类型,但此 GaDTO 使用了其他 DTO。
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class PlaDTO implements Serializable {
private static final long serialVersionUID = -yyyyyy;
private List<PiDTO> pis;
private PiDTO mainPi;
}
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class PiDTO implements Serializable {
private static final long serialVersionUID = -zzzzzz;
private Integer stos;
}
我应该只对 GaDTO 使用 Serializable 还是其他 DTO 也需要它?
我为什么要使用它?
您不需要为您的 DTO 实现可序列化和可反序列化,因为它已经由 Spring Boot Jackson 包处理。
据我所知,在需要反序列化时应该使用Serializable,例如在 API 中使用 dto 作为 return 对象。但是我应该对整个 DTO 对象使用 Serializable 还是只对一般对象使用 Serializable?
@Data
@AllArgsConstructor
public class GaDTO implements Serializable {
private static final long serialVersionUID = -xxxx;
private String id;
private GaStatus gaStatus;
private PlaTurn plaTurn;
private PlaDTO pla1;
private PlaDTO pla2;
}
此 DTO 是 ResponseEntity
的 return 类型,但此 GaDTO 使用了其他 DTO。
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class PlaDTO implements Serializable {
private static final long serialVersionUID = -yyyyyy;
private List<PiDTO> pis;
private PiDTO mainPi;
}
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class PiDTO implements Serializable {
private static final long serialVersionUID = -zzzzzz;
private Integer stos;
}
我应该只对 GaDTO 使用 Serializable 还是其他 DTO 也需要它? 我为什么要使用它?
您不需要为您的 DTO 实现可序列化和可反序列化,因为它已经由 Spring Boot Jackson 包处理。