87.5. 예


아래의 XML DSL 샘플에서는 헤더 값을 기준으로 필터링합니다.

<from uri="seda:orders">
   <filter>
       <simple>${header.foo}</simple>
       <to uri="mock:fooOrders"/>
   </filter>
</from>
Copy to Clipboard Toggle word wrap

Message Filter 패턴에서 위의 서술자 테스트에 Simple 언어를 사용할 수 있습니다. 여기서 message에 foo 헤더( foo 키가 있는 헤더)가 있는지 테스트합니다. 표현식이 true 로 평가되면 메시지는 mock:fooOrders 끝점으로 라우팅되고, 그렇지 않으면 메시지가 삭제됩니다.

Java DSL의 동일한 예:

from("seda:orders")
    .filter().simple("${header.foo}")
        .to("seda:fooOrders");
Copy to Clipboard Toggle word wrap

다음과 같은 간단한 텍스트 연결을 위해 간단한 언어를 사용할 수도 있습니다.

from("direct:hello")
    .transform().simple("Hello ${header.user} how are you?")
    .to("mock:reply");
Copy to Clipboard Toggle word wrap

Camel이 올바르게 구문 분석할 수 있도록 이제 표현식에 $\\{ } 자리 표시자를 사용해야 합니다.

그리고 이 샘플은 date 명령을 사용하여 현재 날짜를 출력합니다.

from("direct:hello")
    .transform().simple("The today is ${date:now:yyyyMMdd} and it is a great day.")
    .to("mock:reply");
Copy to Clipboard Toggle word wrap

그리고 아래 샘플에서는 빈 언어를 호출하여 반환된 문자열에 포함될 빈의 메서드를 호출합니다.

from("direct:order")
    .transform().simple("OrderId: ${bean:orderIdGenerator}")
    .to("mock:reply");
Copy to Clipboard Toggle word wrap

여기서 orderIdGenerator 는 레지스트리에 등록된 빈의 ID입니다. Spring을 사용하는 경우 Spring kubeconfig ID입니다.

순서 ID 생성기 빈에서 호출할 메서드를 선언하려면 generateId 메서드를 호출하는 위치와 같은 .method 이름 앞에 .method 이름을 추가해야 합니다.

from("direct:order")
    .transform().simple("OrderId: ${bean:orderIdGenerator.generateId}")
    .to("mock:reply");
Copy to Clipboard Toggle word wrap

layer component 자체에 익숙한 ?method=methodname 옵션을 사용할 수 있습니다.

from("direct:order")
    .transform().simple("OrderId: ${bean:orderIdGenerator?method=generateId}")
    .to("mock:reply");
Copy to Clipboard Toggle word wrap

예를 들어 사용할 수 있는 String인지 확인하기 위해 본문을 지정된 유형으로 변환할 수도 있습니다.

<transform>
  <simple>Hello ${bodyAs(String)} how are you?</simple>
</transform>
Copy to Clipboard Toggle word wrap

몇 가지 유형이 있습니다. 간단한 표기법이 있으므로 java.lang. String 대신 String을 사용할 수 있습니다. 이 값은 byte[], String, Integer, Long 입니다. 다른 모든 유형은 해당 FQN 이름을 사용해야 합니다(예: org.w3c.dom.Document ).

헤더 맵에서 값을 조회할 수도 있습니다.

<transform>
  <simple>The gold value is ${header.type[gold]}</simple>
</transform>
Copy to Clipboard Toggle word wrap

위의 코드에서는 이름 유형이 있는 헤더를 조회하여 java.util.Map 으로 간주하고 키를 사용하여 조회 하고 값을 반환합니다. 헤더가 Map으로 변환할 수 없는 경우 예외가 발생합니다. name type 이 있는 헤더가 null 이 반환되지 않는 경우

다음과 같은 함수를 중첩할 수 있습니다.

<setHeader name="myHeader">
  <simple>${properties:${header.someKey}}</simple>
</setHeader>
Copy to Clipboard Toggle word wrap
맨 위로 이동
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다. 최신 업데이트를 확인하세요.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

Theme

© 2025 Red Hat