我有几个 DTO(在前端),并且每个 DTO 都实现 Serialized 接口(interface)。
我的问题是,当我通过网络将 DTO 发送到另一个远程应用程序(例如后端)时,DTO 如何自动序列化?我的远程应用程序有一个接受该 DTO 的 Web 服务 (jax-rs) 方法。
我知道为了序列化任何对象,我们必须编写一些代码。
但在这种情况下,我没有编写任何代码来在传输时序列化我的 DTO,并在远程应用程序收到它时对其进行反序列化。
我在后端项目中使用 spring boot 和 jax-rs-jersery。
谢谢!
最佳答案
任何类型的框架都会有一些转换点。对于 JAX-RS,它是 MessageBodyWriter
。为了处理序列化,writeTo()
方法被调用
void writeTo(T t,
Class<?> type,
Type genericType,
Annotation[] annotations,
MediaType mediaType,
MultivaluedMap<String,Object> httpHeaders,
OutputStream entityStream)
throws IOException,
WebApplicationException
对象t
与响应的实体流一起传递给该方法。由实现者决定将此对象从流转换为字节。
有一堆不同的编写器,其中一个的选择取决于媒体类型、对象类型以及isWriteable()
中确定的可能的其他因素。方法。
您可以在Jersey docs chapters 8 and 9中阅读有关实体提供商的更多信息。 .
关于java - DTO 在通过网络传输时如何自动序列化 (java),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50759520/