我有很少的DTO(在前端),每个都实现了Serializable接口。
我的问题是,当我通过网络将DTO发送到另一个远程应用程序(比如后端)时,DTO如何自动序列化?我的远程应用程序有一个Web服务(jax-rs)方法,它接受该DTO。
我知道为了序列化任何对象,我们必须编写一些代码。
但是在这种情况下,当我的远程应用程序收到它时,我没有编写任何代码来序列化我的DTO,同时对其进行传输和反序列化。
我在后端项目中使用带有jax-rs-jersery的spring boot。
谢谢!
答案 0 :(得分:1)
任何类型的框架都会有一些转换点。对于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中了解有关实体提供商的更多信息。