我在我的路由中有一个重复的模式 - 每次调用特定处理器时需要设置相同的3个头文件,因此我在我的路由中有大约10多行以下代码:
.whatever()
.setHeader("foo1", "bar1")
.setHeader("foo2", "bar2")
.setHeader("foo3", "bar3")
.processRef("processorBazThatNeedsHeaders")
.whatever()
每次标题的填充方式都不同,因此将其抽象成子路由并不能带来什么好处。
我希望能够通过子类化RouteDefinition,在我的DSL中添加另一种方法,使我能够做到这一点:
.whatever()
.bazProcessor("bar1", "bar2", "bar3")
.whatever()
在'bazProcessor'中设置头文件并调用处理器。我试图做到这一点,但似乎只有通过一些严重的、可能不具备未来可靠性的手术才能实现,而且似乎其他人也遇到了类似的问题。我需要将它们设置为头文件,而不是直接将它们作为参数传递给处理器,因为这些值在处理器之后还用于路由。是否有一些隐藏的方法可以实现这样的操作?