gpt4 book ai didi

java - Spring MVC - 我的域类是否应该为在线传输实现可序列化?

转载 作者:行者123 更新时间:2023-12-03 11:40:53 28 4
gpt4 key购买 nike

我正在尝试通过实现一个简单的 REST API 来学习 Spring Boot。

我的理解是,如果我需要通过网络传输一个对象,该对象应该实现 Serializable。

但是,在网络上的许多示例中,包括官方示例,需要从服务器传输到客户端(反之亦然)的域类不实现可序列化。

例如:https://spring.io/guides/gs/rest-service/

但在某些情况下,他们会:

例如:https://github.com/szerhusenBC/jwt-spring-security-demo/blob/master/src/main/java/org/zerhusen/security/JwtAuthenticationRequest.java

关于何时实现 Serializable 是否有一般的经验法则?

最佳答案

为了更新这个,关于 Serializable 的建议已经改变,目前的建议似乎是 Don’t use Serializable for anything .
使用 Java 序列化 API 意味着您需要在线路的另一端使用 Java 来反序列化对象,因此您必须控制反序列化的代码以及序列化的代码。
这通常与 REST 应用程序无关,使用应用程序响应是其他人代码的业务,通常在您的组织之外。在构建 REST 应用程序时,通常会尽量避免对使用它的内容施加限制,选择一种与技术无关且广泛可用的格式。
使用对象实现的一些原因 java.io.Serializable将是:

  • 所以你可以把它放在一个 HttpSession 中
  • 这样您就可以在分布式应用程序的各个部分之间通过网络传递它
  • 因此您可以将其保存到文件系统并稍后恢复(例如,您可以使队列的内容可序列化并在应用程序关闭时保存队列内容,在应用程序开始恢复时从保存位置读取在关机时排队进入其状态)。

  • 在所有这些情况下,您都会进行序列化,以便将某些内容保存到文件系统或通过网络发送。

    关于java - Spring MVC - 我的域类是否应该为在线传输实现可序列化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38457074/

    28 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com