使用註解配置路由器

當使用 @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 章節中的 訊息路由器,以取得有關路由器配置的更多資訊。