У меня есть повторяющийся шаблон в моих маршрутах - определенному процессору требуются одни и те же 3 заголовка каждый раз, когда я его вызываю, поэтому в моих маршрутах примерно 10+ раз встречается следующий код:
.whatever()
.setHeader("foo1", "bar1")
.setHeader("foo2", "bar2")
.setHeader("foo3", "bar3")
.processRef("processorBazThatNeedsHeaders")
.whatever()
Заголовки каждый раз заполняются по-разному, так что абстрагирование этого в подчиненный маршрут на самом деле ничего не покупает.
Мне нравится иметь подкласс RouteDefinition, чтобы в моем DSL был другой метод, который позволил бы мне сделать это:
.whatever()
.bazProcessor("bar1", "bar2", "bar3")
.whatever()
и в 'bazProcessor' установите заголовки и вызовите процессор.
Я пытался сделать это, но кажется, что это возможно только с помощью какой-то серьезной операции, которая, вероятно, не гарантирует будущего, и, похоже, другим тоже повезло .
Мне нужно, чтобы они были установлены в качестве заголовков, а не передавались в качестве параметров непосредственно процессору, поскольку эти значения также используются после процессора для маршрутизации.
Есть ли какая-то скрытая возможность для достижения чего-то подобного?