Spring MessageBuilder против Spring Integration MessageBuilder

Spring 4 представил org.springframework.messaging.support.MessageBuilder<T>. И есть один существующий org.springframework.integration.support.MessageBuilder<T> в среде Spring Integration.

Итак, когда я использую Spring Integration с Spring 4, какой построитель сообщений мне следует использовать и почему?


person luboskrnac    schedule 07.10.2015    source источник


Ответы (1)


Оба они производят объекты Message одного типа. Так что за конечный результат можно не волноваться.

В любом случае между ними есть небольшая разница, и для компонентов Spring Websocket было бы лучше использовать org.springframework.messaging.support.MessageBuilder<T>, а для компонентов Spring Integration - другой.

С другой стороны, лучше всего создавать приложение на основе взаимодействия POJO и MessageChannel. При этом вы вообще не будете беспокоиться о билдерах, ведь вы имеете дело только со своим доменом.

Примечание. Spring Integration имеет встроенный bean-компонент с именем messageBuilderFactory, который по умолчанию создает MessageBuilder. Но вы можете переопределить его на MutableMessageBuilderFactory, и все компоненты Spring Integration (расширения IntegrationObjectSupport) уже будут взаимодействовать с MutableMessageBuilder и MutableMessage.

person Artem Bilan    schedule 07.10.2015
comment
Но будьте очень осторожны при использовании изменяемых сообщений — они специализированы и могут иметь опасные побочные эффекты в многопоточном приложении. Я не рекомендую использовать их, кроме как в очень специализированных средах. - person Gary Russell; 07.10.2015