Spring integration Spring集成:如何全局注入头映射器而不是每个组件

Spring integration Spring集成:如何全局注入头映射器而不是每个组件,spring-integration,Spring Integration,我们需要跟踪Spring集成的所有组件。为此,我需要在头中添加一些数据,这些数据可以使用org.springframework.integration.mapping.HeaderMapper的任何实现来完成(例如:DefaultHttpHeaderMapper、DefaultJmsHeaderMapper、DefaultMailHeaderMapper、JmsHeaderMapper),然后使用头映射器属性我们可以注入这些数据 是否有任何方法可以全局注入头映射器,而不是将其单独注入所有组件中

我们需要跟踪Spring集成的所有组件。为此,我需要在头中添加一些数据,这些数据可以使用org.springframework.integration.mapping.HeaderMapper的任何实现来完成(例如:DefaultHttpHeaderMapper、DefaultJmsHeaderMapper、DefaultMailHeaderMapper、JmsHeaderMapper),然后使用头映射器属性我们可以注入这些数据

是否有任何方法可以全局注入头映射器,而不是将其单独注入所有组件中

<int-jms:message-driven-channel-adapter id="jmsIn" channel="input_channel" destination-name="testqueue" header-mapper="testJMSHeaderMapper"/>


但通过上述方法,我需要在每个组件中注入头映射器。我们有没有任何优化的方法可以在一个地方配置它。

创建一个
BeanPostProcessor
并将映射器添加到
Channel Publishing JMSMessageListener
postProcessAfterInitialization
类型的所有Bean中,谢谢您的回复!我需要将映射器添加到所有路由中的所有spring集成组件(例如:intHTTP:inbound gateway、intHTTP:outbound gateway、all channel adapter等)。我上面的例子似乎仅限于jms而令人困惑,但理想情况下,我会寻找所有组件。你能建议一下吗?你可以对所有组件使用相同的技术。只要看看XML模式就可以确定类名。首先,找到所有组件的所有java类名。我已经参考了xsd for http来检查http入站和出站网关,但找不到它们。不确定我是否指的是正确的xsd()。我只有以下的映射:int-http:inbound-gateway-org.springframework.integration.http.inbound.HttpRequestHandlingMessagingGateway int-http:outbound-gateway-org.springframework.integration.http.outbound.abstracthttprequestexecutingmessagehandler您可以指导我查找其他组件的名称吗-int http:inbound gateway、int http:inbound channel adapter、int:transformer、int:header enricher、int:chain、int:router等。其次,在下面的示例中,我如何检索现有的headerMapper,以验证我需要插入的header值是否已经存在。如果不存在,我将添加头值。@重写公共对象后处理初始化后(对象bean,字符串beanName)抛出BeansException{if(beanName.contains(“org.springframework.integration.http.inbound.HttpRequestHandlingMessagingGateway”){HttpRequestHandlingMessagingGateway=(HttpRequestHandlingMessagingGateway)bean;HeaderMapper HeaderMapper=/;