使用 Transformer 中的值丰富 Header

Posted

技术标签:

【中文标题】使用 Transformer 中的值丰富 Header【英文标题】:Enriching Header with the value from the Transformer 【发布时间】:2019-04-20 23:21:44 【问题描述】:

我有一个spring integration flow. 它读取文件。该文件可以属于消费者。一旦我找到消费者,我想将 CONSUMER 添加到标题中,以便稍后我可以使用例如在错误处理中,我可以检查我是否得到了consumer 查看标题。

IntegrationsFlows.from(directorySource)
.transform(new ConsumerFinderTransformer()
.enrichHeaders(h -> h.header("CONSUMER" ,payload)

如何获取enrichHeaders 中由ConsumerFinderTransformer 返回的有效负载。

我找不到办法。任何帮助将不胜感激

【问题讨论】:

【参考方案1】:

这个是为你准备的:

    /**
 * Add a single header specification where the value is a String representation of a
 * SpEL @link Expression. If the header exists, it will <b>not</b> be overwritten
 * unless @link #defaultOverwrite(boolean) is true.
 * @param name the header name.
 * @param expression the expression.
 * @return the header enricher spec.
 */
public HeaderEnricherSpec headerExpression(String name, String expression) 

所以,你的代码应该是这样的:

.enrichHeaders(h -> h.headerExpression(“CONSUMER" , “payload”)

【讨论】:

很高兴我们有你在 SO :) 谢谢@Artem 但是普通的API(无表达式)也应该有这个方法 还有一个headerFunction()作为变体

以上是关于使用 Transformer 中的值丰富 Header的主要内容,如果未能解决你的问题,请参考以下文章

Transformer进行底层图像处理任务

Transformer进行底层图像处理任务

Transformer进行底层图像处理任务

NestJS DTO 类设置 class-validator 和 class-transformer 执行顺序

5分钟NLP:Text-To-Text Transfer Transformer (T5)统一的文本到文本任务模型

UVa 12003 Array Transformer (分块)