Я рассматриваю поддержку сериализации сообщений для Spring-Integration .Это было бы полезно для различных транспортов на уровне сети для реализации гарантированной доставки , но также для обеспечения возможности взаимодействия с другими системами обмена сообщениями (например, через AMQP).
Основная проблема, которая возникает, заключается в том, что сообщениесодержащий Java-объект в его полезной нагрузке, а заголовки должны быть преобразованы в byte[]
и / или записаны в поток.Явная сериализация Java явно не собирается ее сокращать, потому что она не совместима.Я предпочел бы создать интерфейс, который позволит пользователю реализовать необходимую логику для всех объектов, участвующих в сериализации.
Это означает, что я не хочу требовать, чтобы клиентский разработчик генерировал код своего домена, а скорее определяю сериализатор для объектов, которые в этом нуждаются.Интерфейсы будут выглядеть примерно так:
public interface PayloadSerializer<T> {
byte[] bytesForObject(T source);
T objectFromBytes(byte[]);
//similar methods for streaming potentially
}
//add HeaderSerializer, MessageSerializer
Это разумная идея и как будет выглядеть идеальный интерфейс?Существует ли стандартный способ взаимодействия объектов в сериале, который имеет смысл в этом контексте?