28.6. Samples
Kamelets 可以像标准 Camel 组件一样使用。例如,假设我们创建了路由模板,如下所示:
routeTemplate("setMyBody") .templateParameter("bodyValue") .from("kamelet:source") .setBody().constant("{{bodyValue}}");
注意
要让 Kamelet 组件将材料路由到调用者处理器,我们需要能够识别路由的输入和输出端点,方法是使用 kamele:source
为输出端点标记输入端点和 kamelet:sink
。
然后,模板可以实例化并调用,如下所示:
from("direct:setMyBody") .to("kamelet:setMyBody?bodyValue=myKamelet");
在 scenes 后,K Kamelet 组件执行以下操作:
-
它实例化由给定
templateId
path 参数标识的 Route 模板的路由(本例中为setBody
) -
它将像
直接
组件一样,并将当前路由连接到材料化的材料。
如果您需要以编程方式完成此操作,则应该如下:
routeTemplate("setMyBody") .templateParameter("bodyValue") .from("direct:{{foo}}") .setBody().constant("{{bodyValue}}"); TemplatedRouteBuilder.builder(context, "setMyBody") .parameter("foo", "bar") .parameter("bodyValue", "myKamelet") .add(); from("direct:template") .to("direct:bar");