使用註解配置路由器

當使用 @Router 註解方法時,該方法可以返回 MessageChannelString 型別。對於後一種情況,端點會像解析預設輸出通道一樣解析通道名稱。此外,該方法可以返回單個值或集合。如果返回集合,則回覆訊息會發送到多個通道。總而言之,以下方法簽名都是有效的

@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 章中的 訊息路由器