Apache Camel-엔드 포인트

통합 코드에서 엔드 포인트가 어떻게 보이는지에 대해 배웠습니다. 지금까지 사용한 표현은file:/order, jms:orderQueue, direct:distributeOrderDSL끝점입니다. 보시다시피 URI 사양 형식을 따릅니다. 이 URI를 평가하는 동안CamelContext 생성 Endpoint예; 인스턴스화에 대해 걱정할 필요가 없습니다.Endpoint DSL에서 구현.

이전 예제를 살펴보면 다음과 같이 Java DSL에서 엔드 포인트를 지정합니다.

from ("file:/order").to("jms:orderQueue");

그리고 여기와 같이 봄에-

<route>
   <from uri = "file:/order"/>
   <to uri = "jms:orderQueue"/>
</route>

두 경우 모두 끝점은 상수 문자열입니다. 어떤 경우에는 런타임에이 문자열을 빌드 할 수 있습니다. Java를 사용하여 수행 할 수 있습니다.String포맷터 메서드. Camel은 런타임에 이러한 URI 문자열을 생성하는 또 다른 간단한 방법을 제공합니다. 이를 위해 Camel은fromFtoF사용자 지정 매개 변수가있는 인수를 허용하는 메소드. 다음 문은toF 방법-

from("direct:distributeOrderDSL”).toF("file://%s?fileName=%s", path, name);

이러한 방법으로 인해 Java 내장 기능을 사용해야합니다. String 포맷터 메서드는 제거됩니다.

Camel은 기본적으로 단순 언어를 사용하여 엔드 포인트 표현식을 계산합니다. 그만큼Simple 언어는 주로 ExpressionsPredicates복잡함을 신경 쓰지 않고 XPath. 술어를 평가하기 위해 다음과 같은 다른 언어를 결합 할 수 있습니다.xpath 기본값으로 Simple언어. 더하기 기호를 사용하여 다른 언어를 구분하면됩니다. 여기에있는 코드 스 니펫은 연결하는 방법을 보여줍니다.xpath 작성된 표현식에 대한 문자열 Simple.

from("direct:start")
.toD("jms:${orderQueue}+language:xpath:/order/@id");

Spring, 당신은 여기와 같은 것을 얻을 수 있습니다-

<route>
   <from uri = "direct:start"/>
   <toD uri = "jms:${orderQueue}+language:xpath:/order/@id"/>
</route>

원하는만큼의 언어를 연결할 수 있으며 각 언어는 이전 언어와 더하기 기호로 구분됩니다. 지원되는 언어 목록은 여기에서 확인할 수 있습니다 .