我在邮件的标题中有一个频道名称。我想将消息(包含消息上的所有标题)发送到该频道。我试图为它定义一个IntegrationFlow。例如,我想要提交消息的频道名称是在消息的channelName标题中设置的,我的流程定义如下:
public IntegrationFlow someFlowDefinition(){
return IntegrationFlows.from("channelA")
.channel("headers['channelName']")
.get();
}
这里的问题是.channel()不理解spel表达式。所以它认为频道的名称是"标题[' channelName']"
我也尝试使用SpelExpressionParser,但无法设置正确的上下文(如下图所示)。
public IntegrationFlow someFlowDefinition(){
return IntegrationFlows.from("channelA")
.channel(new SpelExpressionParser().parseExpression("headers['channelName']").getValue(???))
.get();
}
据我所知,我需要将Message设置为上下文,但不确定如何在流定义中获取对Message的引用
任何指针?
答案 0 :(得分:0)
.channel()
是静态的;你需要Router
。
使用.route("headers['channelName']")
。