首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用Java配置的Spring集成/报头Enricher

使用Java配置的Spring集成/报头Enricher
EN

Stack Overflow用户
提问于 2015-04-24 14:11:26
回答 2查看 5.7K关注 0票数 2

什么是相当于以下标题的Java

代码语言:javascript
运行
复制
<!-- Business Entity Header Enricher -->
<int:header-enricher 
    id="businessEntityHeaderEnricherComponent"
    should-skip-nulls="false" 
    output-channel="notificationPreferencesInputChannel"
    input-channel="newUserCreatedChannel">

    <!-- Tenant -->
    <int:header name="tenant" 
        <!-- !! HEADER ENRICHMENT ID DONE BY SPRING MANAGED BEAN !! -->
        ref="businessEntityPayloadHeaderEnricher"
        method="extractTenant" />       


</int:header-enricher>

我有一个Spring托管@Bean,它的方法(返回一个Map)应该负责丰富消息头。

我知道我也可以使用spring-integration-dsl,但到目前为止,我需要坚持使用Java。

例如,我是如何使用Java配置来定义的:

代码语言:javascript
运行
复制
    @Bean
    @ServiceActivator(requiresReply = "false", inputChannel = "lifeCycleRouterChannel")
    public InvoiceDelinquencyServiceActivator serviceActivator() {
        return new InvoiceDelinquencyServiceActivator();
    }

定义标题Enricher的等效方法是什么?找不到任何例子/参考。

谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-04-24 14:19:46

HeaderEnricher implements Transformer,所以您可以这样做:

代码语言:javascript
运行
复制
@Bean
@Transformer(inputChannel = "enrichChannel", outputChannel = "processChannel")
public HeaderEnricher headerEnricher() {
    HeaderEnricher headerEnricher = new HeaderEnricher (...);
    ....
    return headerEnricher;
}
票数 4
EN

Stack Overflow用户

发布于 2018-11-26 17:34:43

我也有类似的需求,下面的Groovy代码帮助我使用bean/方法调用添加标题。

代码语言:javascript
运行
复制
@Bean
public HeaderEnricher authTokenHeaderEnricher() {
    new HeaderEnricher(["AUTH_TOKEN":
                                new MessageProcessingHeaderValueMessageProcessor(
                                        new BeanNameMessageProcessor<Object>('authTokenProvider', 'fetchAuthToken')
                                )
                ]
    )
}

@Bean
IntegrationFlow readyForDispatchFlow() {
    IntegrationFlows
            .from("inputChannel")
            .transform(authTokenHeaderEnricher())
            .channel("outputChannel")
            .get()
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29849743

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档