316.3. Samples


316.3.1. 표현식 템플릿

표현식 템플릿 작성이 활성화되므로 SPEL 표현식은 #{ } 구분 기호로 묶어야 합니다. 이를 통해 SpEL 표현식을 일반 텍스트와 결합하고 이를 매우 경량의 템플릿 언어로 사용할 수 있습니다.

예를 들어 다음 경로를 구성하는 경우 다음을 수행합니다.

from("direct:example")
    .setBody(spel("Hello #{request.body}! What a beautiful #{request.headers['dayOrNight']}"))
    .to("mock:result");

위의 경로에서 notice spel은 setBody 메서드에 매개 변수로 전달된 Expression으로 spel을 사용하므로 org.apache.camel. Cryostat.spel.spel.spel에서 가져와야 하는 정적 메서드입니다. 그러나 fluent API를 사용하는 경우 대신 이 작업을 수행할 수 있습니다.

from("direct:example")
    .setBody().spel("Hello #{request.body}! What a beautiful #{request.headers['dayOrNight']}")
    .to("mock:result");

이제 setBody() 메서드의 spel 메서드를 사용합니다. 또한 org.apache.camel. Cryostat.spel.SpelExpression.spel에서 spel 메서드를 정적으로 가져올 필요가 없습니다.

그리고 본문에 "World" 문자열이 포함된 메시지를 보내고, 값이 "day"인 "dayOrNight" 헤더를 보냈습니다.

template.sendBodyAndHeader("direct:example", "World", "dayOrNight", "day");

mock:result 의 출력은 "Hello World! <아름다울한 날>

316.3.2. Cryostat 통합

SpEL 표현식에서 Registry (most likely an ApplicationContext)에 정의된 beans를 참조할 수 있습니다. 예를 들어 ApplicationContext 에 "foo"라는 빈이 있는 경우 다음과 같이 이 8080에서 "bar" 메서드를 호출할 수 있습니다.

#{@foo.bar == 'xyz'}

316.3.3. 엔터프라이즈 통합 패턴의 SPEL

SpEL을 수신자 목록 의 표현식 또는 메시지 필터 내에서 서술자로 사용할 수 있습니다.

<route>
  <from uri="direct:foo"/>
  <filter>
    <spel>#{request.headers['foo'] == 'bar'}</spel>
    <to uri="direct:bar"/>
  </filter>
</route>

Java DSL과 동등한 것:

from("direct:foo")
    .filter().spel("#{request.headers['foo'] == 'bar'}")
    .to("direct:bar");
Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

© 2024 Red Hat, Inc.