Spring integration 与spring集成5.1.1中的enrichHeaders等效
以下代码是在SpringIntegrationJavaDSL的1.2.1版本中编写的Spring integration 与spring集成5.1.1中的enrichHeaders等效,spring-integration,Spring Integration,以下代码是在SpringIntegrationJavaDSL的1.2.1版本中编写的 IntegrationFlows.from(inMessageChannel())// .enrichHeaders( c -> c.<InMessage>headerFunction(HEADER_IN_MESSAGE_ID,
IntegrationFlows.from(inMessageChannel())//
.enrichHeaders(
c -> c.<InMessage>headerFunction(HEADER_IN_MESSAGE_ID,
(message) -> message.getPayload().getInMessage().getId())//
.<InMessage>headerFunction(HEADER_ORIGINAL_MESSAGE_ID,
(message) -> message.getPayload().getInMessage().getMessageId()),
c -> c.poller(Pollers.fixedDelay(100)//
.transactional(platformTransactionManager)//
.errorChannel(errorChannel())))//
.handle(...)
如果我正确理解1.2.1代码,轮询器被添加到inMessageChannel()
,在新版本中,它尝试将轮询器添加到errorChannel()
,这是不允许的
有什么想法吗?
谢谢大家!
PS:显然,我是spring集成的初学者,必须修改一些代码:)从版本
5.0开始,enrichHeaders()
确实已经改变了。
我们所做的只是两个消费者的合并。因此,目前您需要对其进行如下配置:
.enrichHeaders(
c -> c.<InMessage>headerFunction(HEADER_IN_MESSAGE_ID,
(message) -> message.getPayload().getInMessage().getId())//
.<InMessage>headerFunction(HEADER_ORIGINAL_MESSAGE_ID,
(message) -> message.getPayload().getInMessage().getMessageId())
.poller(Pollers.fixedDelay(100)//
.transactional(platformTransactionManager)//
.errorChannel(errorChannel())))//
.enrichHeaders(
c->c.headerFunction(消息ID中的标题),
(消息)->message.getPayload().getInMessage().getId())//
.headerFunction(头\u原始\u消息\u ID,
(消息)->message.getPayload().getInMessage().getMessageId())
.轮询器(轮询器固定延迟(100)//
.transactional(平台事务管理器)//
.errorChannel(errorChannel()))//
请参阅《迁移指南》中的更多信息:
.enrichHeaders(
c -> c.<InMessage>headerFunction(HEADER_IN_MESSAGE_ID,
(message) -> message.getPayload().getInMessage().getId())//
.<InMessage>headerFunction(HEADER_ORIGINAL_MESSAGE_ID,
(message) -> message.getPayload().getInMessage().getMessageId())
.poller(Pollers.fixedDelay(100)//
.transactional(platformTransactionManager)//
.errorChannel(errorChannel())))//