30장. 간단한 언어

초록

간단한 언어는 특히 교환 오브젝트의 다양한 부분에 액세스하고 조작하기 위해 Apache Camel에서 개발한 언어입니다. 이 언어는 원래 생성되었을 때만큼 간단하지 않으며 이제 포괄적인 논리 연산자 및 조합 세트가 있습니다.

30.1. Java DSL

30.1.1. Java DSL의 간단한 표현식

Java DSL에는 경로에서 simple() 명령을 사용하기 위한 두 가지 스타일이 있습니다. 다음과 같이 simple() 명령을 프로세서에 인수로 전달할 수 있습니다.

from("seda:order")
  .filter(simple("${in.header.foo}"))
  .to("mock:fooOrders");

또는 processor에서 sub-clause로 simple() 명령을 호출할 수 있습니다. 예를 들면 다음과 같습니다.

from("seda:order")
  .filter()
  .simple("${in.header.foo}")
  .to("mock:fooOrders");

30.1.2. 문자열에 포함

일반 텍스트 문자열 내에 간단한 표현식을 포함하는 경우 자리 표시자 구문 ${Expression} 을 사용해야 합니다. 예를 들어 in.header.name 표현식을 문자열에 포함하려면 다음을 수행합니다.

simple("Hello ${in.header.name}, how are you?")

30.1.3. 시작 및 종료 토큰 사용자 정의

Java에서 change function StartToken 정적 메서드를 호출하고 SimpleLanguage 오브젝트에서 changeFunctionEndToken 정적 메서드를 호출하여 시작 및 종료 토큰({} )을 사용자 지정할 수 있습니다.

예를 들어 다음과 같이 시작 및 종료 토큰을 Java의 [] 로 변경할 수 있습니다.

// Java
import org.apache.camel.language.simple.SimpleLanguage;
...
SimpleLanguage.changeFunctionStartToken("[");
SimpleLanguage.changeFunctionEndToken("]");
참고

시작 및 종료 토큰을 사용자 정의하면 클래스 경로에서 동일한 camel-core 라이브러리를 공유하는 모든 Apache Camel 애플리케이션에 영향을 미칩니다. 예를 들어 OSGi 서버에서는 많은 애플리케이션에 영향을 미칠 수 있지만 웹 애플리케이션(WAR 파일)에서는 웹 애플리케이션 자체에만 영향을 미칩니다.