Вы можете настроить источник для отправки сообщения на PublishSubscribeChannel
.
Затем настройте два Transformers для подписки на этот паб-субканал. Один из преобразователей преобразует сообщение в версию с 6 атрибутами, а другой - в версию с 4 атрибутами. Затем оба преобразователя будут отправлять преобразованные сообщения в отдельный канал. Две целевые системы будут искать сообщения, отправленные на эти разделенные каналы, и обрабатывать их.
С точки зрения конфигурации аннотации это выглядит следующим образом: (Предполагается, что сообщение, которое отправил источник, Foo
)
@Bean
public MessageChannel pubSubChannel() {
return new PublishSubscribeChannel();
}
@Bean
public MessageChannel outputChannelWith4Attributes() {
return new DirectChannel();
}
@Bean
public MessageChannel outputChannelWith6Attributes() {
return new DirectChannel();
}
@Component
public class MyTransformer {
@Transformer(inputChannel = "pubSubChannel", outputChannel = "outputChannelWith4Attributes")
public Foo transformTo4Attribute(Foo foo) {
//do the transformation logic here
return result;
}
@Transformer(inputChannel = "pubSubChannel", outputChannel = "outputChannelWith6Attributes")
public Foo transformTo6Attribute(Foo foo) {
//do the transformation logic here
return result;
}
}
И настройте источник для отправки сообщения с полезной нагрузкой. Foo
до pubSubChannel
. Также настройте цели для обработки сообщений от outputChannelWith4Attributes
и outputChannelWith6Attributes
.