284.5.4. 步骤 3:使用 routebox producer

将请求发送到 routebox 时,生产者不需要知道内部路由端点 URI,它们只需通过发送策略或分配Map 来调用 Routebox URI 端点,如下所示

需要设置一个特殊的交换标头,名为 ROUTE_DISPATCH_KEY (为 Dispatch Strategy (可选)与分配映射中的键匹配的密钥,以便请求可以发送到正确的内部路由

from("direct:sendToStrategyBasedRoutebox")
    .to("routebox:multipleRoutes?innerRegistry=#registry&routeBuilders=#routes&dispatchStrategy=#strategy")
    .to("log:Routes operation performed?showAll=true");

from ("direct:sendToMapBasedRoutebox")
    .setHeader("ROUTE_DISPATCH_KEY", constant("addToCatalog"))
    .to("routebox:multipleRoutes?innerRegistry=#registry&routeBuilders=#routes&dispatchMap=#map")
    .to("log:Routes operation performed?showAll=true");