2017-06-12 47 views
1

我有一個普遍的問題。我們正在將一些舊代碼升級到spring-integration的v4.1.3。比方說,我們有一個服務激活器,它接收Foo類型的域對象,並在輸出通道上返回相同的對象(在更改該對象的某些屬性之後)。Spring集成 - 服務激活器 - 方法簽名

我們現有的代碼有如下簽名。這是正確的慣例嗎?如果我不需要標題,我可以直接返回我的有效載荷,並將框架包裝成消息嗎?:

public Message<Foo> computeValue(Foo payload, @Headers Map<String, Object> headerMap) { 
    //... 
    return MessageBuilder.withPayload(payload).copyHeaders(headerMap).build(); 
} 

回答

1

是的,你不需要那樣做。更重要的是沒有意義,因爲在服務激活器的情況下,框架將請求標題填充到回覆消息,而不管你的努力如何。

所以,如果你不需要在這個問題上做一些特定的邏輯,那麼考慮根本不關心標題。

+1

好的再次感謝Artem,一如既往!爲了重新理解你對我的理解所說的話:只要做一個「返回有效載荷」;框架仍然會保留所有標題並將有效負載轉換爲消息。 – code4kix

+0

不轉換,但換行。使您的對象成爲回覆消息的「有效載荷」 –