编程语言
首页 > 编程语言> > Headerenricher Spring Integration和Java DSL

Headerenricher Spring Integration和Java DSL

作者:互联网

我正在使用Spring Integration和Java DSL规范来实现我的IntegrationFlow.
我想使用一个自定义的头文件扩充工具来向头文件添加一些文件名,就像这样:

public class FileHeaderNamingEnricher {
    public Message<File> enrichHeader(Message<File> fileMessage) {
            // getting some details fom the database ...
            return messageBuilder
                    .setHeader("filename", "somestuff")
                    .build();
        }  
}

我的集成流程如下所示:

public IntegrationFlow myflow() {
        return IntegrationFlows.from("input")
                                .enrich // here I want to enrich the header using my class
    }

有人可以帮我吗?

解决方法:

您可以让FileHeaderNamingEnricher扩展AbstractReplyProducingMesageHandler(将代码放入handleRequestMessage()中).

或者,实现GenericHandler< T>. (其handle方法将有效负载和标头作为参数获取,并可以返回消息).

然后使用.handle方法…

 ...
 .handle(myEnricher())
 ...

 @Bean
 public void MessageHandler myEnricher() {
    return new FileHeaderNamingEnricher();
 }

标签:dsl,spring,java,spring-integration
来源: https://codeday.me/bug/20191121/2048190.html