Spring Integration Java DSL - В чем разница между классом HeaderEnricher и HeaderEnricherSpec

Я изучаю DSL до Java8 для весенней интеграции и пробую несколько примеров из существующих компонентов интеграции, доступных в моем проекте. Для обогащения заголовков я нашел два класса: HeaderEnricher и HeaderEnricherSpec.

В чем разница между этими классами, я заметил, что HeaderEnricherSpec расширяет класс HeaderEnricher. Как в этом случае помогает IntegrationComponentSpec.


person Vidhya    schedule 20.06.2017    source источник


Ответы (1)


HeaderEnricherSpec - это реализация шаблона построителя для HeaderEnricher.

Общий код выглядит так:

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 - это суперкомпьютер с общими свойствами для любых спецификаций компонентов интеграции.

person Artem Bilan    schedule 20.06.2017
comment
Большое спасибо за разъяснения - person Vidhya; 21.06.2017