27.6. 샘플
Kamelets는 표준 Camel 구성 요소인 것처럼 사용할 수 있습니다. 예를 들어 다음과 같이 Route Template을 생성했다고 가정합니다.
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 Template에서 경로를 인스턴스화합니다(이 경우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");