67장. CSimple


C Simple 언어는 간단한 언어로 컴파일됩니다.

67.1. CSimple과 Simple의 차이가 있습니다.

간단한 언어는 Camel Expressions 또는 Predicates 세트로 런타임 구문 분석되는 동적 표현식 언어입니다.

csimple 언어는 일반 Java 소스 코드로 구문 분석되고 다른 모든 소스 코드와 함께 컴파일되거나 camel-csimple-joor 모듈을 통해 부트스트랩 중에 한 번 컴파일됩니다.

간단한 언어는 일반적으로 매우 가볍고 빠르지만 OGNL 경로를 통해 동적 메서드 호출을 사용하는 일부 사용 사례의 경우 간단한 언어에서는 런타임 인트로스펙션 및 리버전션 호출을 수행합니다. 이는 성능에 대한 오버헤드가 있으며 csimple가 생성된 이유 중 하나였습니다.

csimple 언어는 OGNL 경로를 통해 typesafe이고 메서드 호출을 위해서는 구문 분석 중에 유형을 알아야 합니다. 즉, csimple 언어 표현식에 대해서는 스크립트에 클래스 유형을 제공해야 하는 반면 런타임 시 이를 간단하게 검사해야 합니다.

즉, 간단한 언어는 duck typing 을 사용하고 있습니다 (duck, 및 quacks 처럼 보이는 경우 duck, then it is a duck) 및 csimple는 Java 유형 (typesafety)을 사용합니다. 유형 오류가 있으면 런타임에 이를 보고하며 csimple를 사용하면 Java 컴파일 오류가 발생합니다.

67.1.1. 추가 CSimple 함수

csimple 언어에는 컬렉션, 또는 배열 유형에서 작업하는 일반적인 사용 사례를 지원하는 몇 가지 추가 기능이 포함되어 있습니다. 다음 함수 bodyAsIndex,headerAsIndex, exchangePropertyAsIndex 는 입력 시 이러한 사용 사례에 사용됩니다.

Expand
함수유형설명

bodyAsIndex(type, index)

유형

기존 컬렉션, 또는 배열(인덱스로 조회)에서 본문을 수집한 다음 본문을 클래스 이름에 의해 결정된 지정된 형식으로 변환하는 데 사용됩니다. 변환된 본문은 null일 수 있습니다.

mandatoryBodyAsIndex(type, index)

유형

기존 컬렉션, 또는 배열(인덱스로 조회)에서 본문을 수집한 다음 본문을 클래스 이름에 의해 결정된 지정된 형식으로 변환하는 데 사용됩니다. 본문이 null이 아닐 것으로 예상됩니다.

headerAsIndex(key, type, index)

유형

기존 컬렉션, 또는 배열(인덱스로 조회)에서 헤더를 수집한 다음 헤더 값을 클래스 이름에 의해 결정된 지정된 형식으로 변환하는 데 사용됩니다. 변환된 헤더는 null일 수 있습니다.

mandatoryHeaderAsIndex(key, type, index)

유형

기존 컬렉션, 또는 배열(인덱스로 조회)에서 헤더를 수집한 다음 헤더 값을 클래스 이름에 의해 결정된 지정된 형식으로 변환하는 데 사용됩니다. 헤더가 null이 아닐 것으로 예상됩니다.

exchangePropertyAsIndex(key, type, index)

유형

기존 Collection,Map 또는 array(index로 조회)에서 교환 속성을 수집한 다음, 해당 classname에 의해 결정된 지정된 형식으로 교환 속성을 변환하는 데 사용됩니다. 변환된 교환 속성은 null일 수 있습니다.

mandatoryExchangePropertyAsIndex(key, type, index)

유형

기존 Collection,Map 또는 array(index로 조회)에서 교환 속성을 수집한 다음, 해당 classname에 의해 결정된 지정된 형식으로 교환 속성을 변환하는 데 사용됩니다. exchange 속성이 null이 아닐 것으로 예상됩니다.

예를 들어 다음과 같은 간단한 표현식이 제공됩니다.

Hello $\{body[0].name}
Copy to Clipboard Toggle word wrap

이 스크립트는 유형 정보가 없으며 간단한 언어는 메시지 본문을 인트로스펙션하여 런타임 시 이를 해결한 다음, 컬렉션을 기반으로 첫 번째 요소를 조회한 다음 리플렉션을 통해 getName 메서드를 호출합니다.

csimple(ECDHE)에서 이 작업을 미리 컴파일해야 하므로 최종 사용자가 bodyAsIndex 함수와 함께 형식 정보를 제공해야 합니다.

Hello $\{bodyAsIndex(com.foo.MyUser, 0).name}
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