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은fromF 과 toF사용자 지정 매개 변수가있는 인수를 허용하는 메소드. 다음 문은toF 방법-
from("direct:distributeOrderDSL”).toF("file://%s?fileName=%s", path, name);
이러한 방법으로 인해 Java 내장 기능을 사용해야합니다. String 포맷터 메서드는 제거됩니다.
Camel은 기본적으로 단순 언어를 사용하여 엔드 포인트 표현식을 계산합니다. 그만큼Simple 언어는 주로 Expressions 과 Predicates복잡함을 신경 쓰지 않고 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>
원하는만큼의 언어를 연결할 수 있으며 각 언어는 이전 언어와 더하기 기호로 구분됩니다. 지원되는 언어 목록은 여기에서 확인할 수 있습니다 .