为什么 org.springframework.http.ResponseEntity 没有实现 Serialized

med*_*ifi 1 java serialization spring

我尝试了解可序列化接口及其实用程序。

我现在知道实现可序列化的对象将被转换为字节流,以便它们可以通过网络传输或保存在数据库中。

我的问题是,org.springframework.http.ResponseEntity既然 ResponseEntity 是 spring RestController 响应,为什么不实现 Serialized 接口?

PS:我问这个问题,我知道也许我完全没有抓住要点,而且我还不理解 Srialized 和 ResponseEntity 的概念。

chr*_*ke- 5

java.io.Serializable使用一种称为Java 序列化特定序列化。当它作为核心语言平台的一部分引入时,这是一项重大创新(并且仍然具有一些值得尊敬的功能,例如处理引用循环),但它有一些严重的缺点,其中最大的缺点是它与其他平台不兼容(包括人的眼球)。

相反,现代应用程序倾向于使用其他序列化机制(主要是 JSON,还有大量 XML,以及一些其他选项,例如 Avro 和 Protocol Buffers)。它们不使用内置平台序列化功能,而是使用检查对象并输出序列化形式的库(例如 Jackson)。这意味着此类对象不需要实现Serializable

ResponseEntity不实现的一个主要原因Serializable是,这样做需要其所有内容也实现Serializable,否则在运行时可能会发生意外NotSerializableException。既然没有什么用处,那还是跳过吧。