Как DTO автоматически сериализуются при передаче их по сети (Java) - PullRequest
0 голосов
/ 08 июня 2018

У меня есть несколько DTO (во внешнем интерфейсе), и каждый из них реализует интерфейс Serializable.

Мой вопрос заключается в том, как автоматически сериализуются DTO, когда я отправляю DTO по сети в мое другое удаленное приложение (скажем, бэкэнд)?Мое удаленное приложение имеет метод веб-службы (jax-rs), который принимает этот DTO.

Я знаю, что для сериализации любого объекта нам нужно написать какой-то фрагмент кода.

Но вв этом случае я не пишу никакого кода для сериализации моего DTO при передаче и десериализации его, когда он получен моим удаленным приложением.

Я использую пружинную загрузку с jax-rs-jersery в моем бэкэнд-проекте.

Спасибо!

1 Ответ

0 голосов
/ 08 июня 2018

Любой вид фреймворка будет иметь некоторую точку конверсии.Для 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 передается методу вместе с потоком сущности для ответа.Разработчик должен преобразовать этот объект в поток в байты.

Существует множество разных авторов, и выбор одного зависит от типа носителя, типа объекта и возможных других факторов, определенных в * 1013.*isWriteable() метод.

Подробнее о провайдерах сущностей можно прочитать в главах 8 и 9 Джерси * Джерси *.

...