我正在尝试通过实现一个简单的 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
将是:
在所有这些情况下,您都会进行序列化,以便将某些内容保存到文件系统或通过网络发送。
关于java - Spring MVC - 我的域类是否应该为在线传输实现可序列化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38457074/