Spring 集成 Java DSL - class HeaderEnricher 和 HeaderEnricherSpec 之间有什么区别

Spring Integration Java DSL - What is the difference between class HeaderEnricher and HeaderEnricherSpec

我正在学习用于 spring 集成的预 Java8 DSL,并尝试从我的项目中可用的现有集成组件中获取一些示例。对于 header enricher,我遇到了两个 classes,HeaderEnricher 和 HeaderEnricherSpec。

这些classes有什么区别,我观察到HeaderEnricherSpec扩展了HeaderEnricherclass。 IntegrationComponentSpec 在这种情况下如何提供帮助。

HeaderEnricherSpecHeaderEnricherbuilder 模式实现。

一般代码如下:

public class HeaderEnricherSpec extends IntegrationComponentSpec<HeaderEnricherSpec, HeaderEnricher> {
   ...
   @Override
    protected HeaderEnricher doGet() {
        HeaderEnricher headerEnricher =
                new HeaderEnricher(new HashMap<String, HeaderValueMessageProcessor<?>>(this.headerToAdd));
        headerEnricher.setDefaultOverwrite(this.defaultOverwrite);
        headerEnricher.setShouldSkipNulls(this.shouldSkipNulls);
        headerEnricher.setMessageProcessor(this.messageProcessor);
        return headerEnricher;
    }
}

IntegrationComponentSpec 是一个 "super" 构建器,具有集成组件的任何规范的通用属性。