64장. CSimple


CSimple 언어는 Simple Language로 컴파일 됩니다.

64.1. CSimple과 Simple의 차이점은 무엇입니까?

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

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

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

csimple 언어는 형식이 안전해야 하며 OGNL 경로를 통해 메서드 호출은 구문 분석 중에 유형을 알아야 합니다. 즉, 스크립트에 클래스 유형을 제공해야 하는 csimple languages의 경우 런타임 시 이를 간단하게 인트로스펙션합니다.

즉 간단한 언어는 duck 입력 을 사용하고 있습니다 (duck과 같은 quacks와 같은 경우, 그것은 duck)이고 csimple은 Java 유형 (type safety)을 사용하고 있습니다. 유형 오류가 있는 경우 simple는 런타임 시 이 문제를 보고할 것이며 csimple에는 Java 컴파일 오류가 발생합니다.

64.1.1. 추가 CSimple 함수

csimple 언어에는 Collection,Map 또는 array 유형으로 작업하는 일반적인 사용 사례를 지원하는 몇 가지 추가 함수가 포함되어 있습니다. 다음 함수 bodyAsIndex,headerAsIndex, exchangePropertyAsIndex 는 입력 시 이러한 사용 사례에 사용됩니다.

함수유형설명

bodyAsIndex(type, index)

유형

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

mandatoryBodyAsIndex(type, index)

유형

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

headerAsIndex(key, type, index)

유형

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

mandatoryHeaderAsIndex(key, type, index)

유형

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

exchangePropertyAsIndex(key, type, index)

유형

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

mandatoryExchangePropertyAsIndex(key, type, index)

유형

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

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

Hello $\{body[0].name}

이 스크립트에는 유형 정보가 없으며 런타임 시 메시지 본문을 검사하고 컬렉션 기반 컬렉션인 경우 리플렉션을 통해 getName 이라는 메서드를 호출하여 이를 해결할 수 있습니다.

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

Hello $\{bodyAsIndex(com.foo.MyUser, 0).name}
Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

© 2024 Red Hat, Inc.