Tôi đã có một mô hình lặp lại trên các tuyến đường của tôi - một bộ xử lý nhất định cần cùng 3 Headers thiết mỗi khi tôi gọi nó, vì vậy tôi đã có đoạn mã sau vào tuyến đường của tôi về 10+ lần:Lạc đà - mở rộng Java DSL?
.whatever()
.setHeader("foo1", "bar1")
.setHeader("foo2", "bar2")
.setHeader("foo3", "bar3")
.processRef("processorBazThatNeedsHeaders")
.whatever()
Các tiêu đề được phổ biến theo thời gian khác nhau, vì vậy việc trừu tượng hóa điều này thành một subroute không thực sự mua cho tôi bất cứ điều gì.
Những gì tôi yêu để có thể làm là lớp con RouteDefinition để có một phương pháp khác trong DSL của tôi mà sẽ cho phép tôi làm điều này:
.whatever()
.bazProcessor("bar1", "bar2", "bar3")
.whatever()
và trong 'bazProcessor', thiết lập các tiêu đề và gọi bộ xử lý .
Tôi đã cố gắng thực hiện điều này nhưng có vẻ như chỉ có thể thực hiện được với một số phẫu thuật nghiêm trọng có thể không phải là tương lai, và có vẻ như là others have had similar luck.
Tôi cần chúng được đặt làm tiêu đề thay vì truyền chúng như tham số trực tiếp cho bộ xử lý vì các giá trị cũng được sử dụng sau khi bộ xử lý định tuyến.
Có một số cơ sở ẩn để đạt được điều gì đó như thế này không?
Đây là một ý tưởng tốt. Những gì tôi cần là * hơi * khác nhau nhưng tôi nghĩ rằng đây là một khởi đầu tốt. Tôi sẽ bắn và trả lời. –
Bạn có thể nêu chi tiết câu trả lời của mình không? Tôi không hiểu nó: ( – Edmondo1984