Spring 集成 Content Enricher 如何仅使用 Java (JavaConfig) 实现?
How is a Spring integration Content Enricher implemented using Java only (JavaConfig)?
我正在尝试找到最好的 Java 配置方法
org.springframework.integration.transformer.ContentEnricher
它是 Message Transformation 系列的一部分,但没有实现 Transformer(就像 HeaderEnricher 那样),但我发现它仍然有效:
@Bean
@Transformer(inputChannel="requestChannel", outputChannel="replyChannel")
public ContentEnricher contentEnricher() {
ContentEnricher contentEnricher = new ContentEnricher();
Map<String, Expression> propertyExpressions = new HashMap<String, Expression>();
propertyExpressions.put("description", new SpelExpressionParser().parseExpression("'enriching description with static string'"));
contentEnricher.setPropertyExpressions(propertyExpressions );
return contentEnricher;
}
这是最好的方法还是有其他更好的选择?
是的,这是正确的配置,它之所以有效,是因为 ContentEnricher
是一个 MessageHandler
实现,具有从 MethodInvokingTransformer
.[=21 接受的适当 handleMessage(Message<?> message)
方法=]
另一个你的想法是错误的。 ContentEnricher
不是 Transformation family
的一部分。
正是一些黑匣子从外部系统提取额外数据并将其添加到请求消息中。
在此处查看更多信息:http://www.enterpriseintegrationpatterns.com/DataEnricher.html
因此,@ServiceActivator
更适合 ContentEnricher
的情况。
另外,请关注Spring Integration Java DSL项目。它具有 .enrich()
表示法。
我正在尝试找到最好的 Java 配置方法
org.springframework.integration.transformer.ContentEnricher
它是 Message Transformation 系列的一部分,但没有实现 Transformer(就像 HeaderEnricher 那样),但我发现它仍然有效:
@Bean
@Transformer(inputChannel="requestChannel", outputChannel="replyChannel")
public ContentEnricher contentEnricher() {
ContentEnricher contentEnricher = new ContentEnricher();
Map<String, Expression> propertyExpressions = new HashMap<String, Expression>();
propertyExpressions.put("description", new SpelExpressionParser().parseExpression("'enriching description with static string'"));
contentEnricher.setPropertyExpressions(propertyExpressions );
return contentEnricher;
}
这是最好的方法还是有其他更好的选择?
是的,这是正确的配置,它之所以有效,是因为 ContentEnricher
是一个 MessageHandler
实现,具有从 MethodInvokingTransformer
.[=21 接受的适当 handleMessage(Message<?> message)
方法=]
另一个你的想法是错误的。 ContentEnricher
不是 Transformation family
的一部分。
正是一些黑匣子从外部系统提取额外数据并将其添加到请求消息中。
在此处查看更多信息:http://www.enterpriseintegrationpatterns.com/DataEnricher.html
因此,@ServiceActivator
更适合 ContentEnricher
的情况。
另外,请关注Spring Integration Java DSL项目。它具有 .enrich()
表示法。