使用 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的主要内容,如果未能解决你的问题,请参考以下文章
NestJS DTO 类设置 class-validator 和 class-transformer 执行顺序