Spring集成|使用Java配置的标头Enricher
Java配置相当于以下标题enricher的内容是什么:-Spring集成|使用Java配置的标头Enricher,java,spring,spring-integration,Java,Spring,Spring Integration,Java配置相当于以下标题enricher的内容是什么:- <!-- Business Entity Header Enricher --> <int:header-enricher id="businessEntityHeaderEnricherComponent" should-skip-nulls="false" output-channel="notificationPreferencesInputChannel" input-cha
<!-- 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>
定义标题充实器的等效方法是什么?
找不到任何示例/参考
谢谢。
头部变压器
,因此您可以执行以下操作:
@Bean
@Transformer(inputChannel = "enrichChannel", outputChannel = "processChannel")
public HeaderEnricher headerEnricher() {
HeaderEnricher headerEnricher = new HeaderEnricher (...);
....
return headerEnricher;
}
我也有类似的需求,下面的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()
}
@Bean
public HeaderEnricher authTokenHeaderEnricher(){
新标题([“授权令牌”:
新MessageProcessingHeaderValueMessageProcessor(
新的BeanNameMessageProcessor('authTokenProvider','fetchAuthToken')
)
]
)
}
@豆子
集成流readyForDispatchFlow(){
集成流
.从(“输入通道”)
.transform(authTokenHeaderInRicher())
.频道(“输出频道”)
.get()
}
示例中的标题丰富bean(BusinessEntityPayLoadHeaderInRicher)是如何出现在图中的。我如何告诉HeaderEnricher在我的bean中使用方法?HeaderEnricher
具有setMessageProcessor
,因此您可以从该接口实现包装bean调用,例如,MethodInvokingMessageProcessor
。但现在我决定回到XML配置,因为Java配置使我的业务代码与Spring集成的类结合在一起——这可能只是我的观点……如果您的设计。。。您可以有几个@Configuration
类来解耦。例如expressionevaluationmessageprocessor
Forheaderenrich
@Bean
允许您不将集成@Configuration
与业务组件@Configuration
绑定。
@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()
}