什么是相当于以下标题的Java ?
<!-- 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配置来定义的:
@Bean
@ServiceActivator(requiresReply = "false", inputChannel = "lifeCycleRouterChannel")
public InvoiceDelinquencyServiceActivator serviceActivator() {
return new InvoiceDelinquencyServiceActivator();
}定义标题Enricher的等效方法是什么?找不到任何例子/参考。
谢谢。
发布于 2015-04-24 14:19:46
HeaderEnricher implements Transformer,所以您可以这样做:
@Bean
@Transformer(inputChannel = "enrichChannel", outputChannel = "processChannel")
public HeaderEnricher headerEnricher() {
HeaderEnricher headerEnricher = new HeaderEnricher (...);
....
return headerEnricher;
}发布于 2018-11-26 17:34:43
我也有类似的需求,下面的Groovy代码帮助我使用bean/方法调用添加标题。
@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()
}https://stackoverflow.com/questions/29849743
复制相似问题