我应该为我的 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 包处理。