66.7. Samples
kamelets 可以像标准 Camel 组件一样使用。例如,假设我们创建了 Route 模板,如下所示:
routeTemplate("setMyBody")
.templateParameter("bodyValue")
.from("kamelet:source")
.setBody().constant("{{bodyValue}}");
注意
要让 Kamelet 组件与调用者处理器一致,我们需要识别路由的输入和输出端点,这通过使用 kamele:source 来标记输出端点,kamelet:sink 来为输出端点进行。
然后,可以实例化模板并调用,如下所示:
from("direct:setMyBody")
.to("kamelet:setMyBody?bodyValue=myKamelet");
在进行后,Kamelet 组件会执行以下操作:
-
它将路由从给定
templateId路径参数标识的 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");