使用註解配置路由器
當使用 @Router
註解方法時,該方法可以返回 MessageChannel
或 String
型別。對於後一種情況,端點會像解析預設輸出通道一樣解析通道名稱。此外,該方法可以返回單個值或集合。如果返回集合,則回覆訊息會發送到多個通道。總而言之,以下方法簽名都是有效的
@Router
public MessageChannel route(Message message) {...}
@Router
public List<MessageChannel> route(Message message) {...}
@Router
public String route(Foo payload) {...}
@Router
public List<String> route(Foo payload) {...}
除了基於 payload 的路由外,訊息還可以根據訊息頭中的元資料(作為屬性或特性)進行路由。在這種情況下,帶有 @Router
註解的方法可以包含一個帶有 @Header
註解的引數,該引數對映到頭值,如下例所示,並在 註解支援 中有詳細說明
@Router
public List<String> route(@Header("orderStatus") OrderStatus status)
對於基於 XML 的訊息路由,包括 XPath 支援,請參見 XML 支援 - 處理 XML Payload。 |
有關路由器配置的更多資訊,另請參見 Java DSL 章中的 訊息路由器。