1장. 경로 정의용 블록 빌드
초록
Apache Camel은 경로를 정의하는 데 필요한 두 가지 대체 DSL( Domain Specific Languages )을 지원합니다(Java DSL 및 Spring XML DSL). 경로를 정의하는 기본 빌딩 블록은 끝점 및 프로세서이며, 프로세서 의 동작은 일반적으로 표현식 또는 논리 서술자 에 의해 수정됩니다. Apache Camel을 사용하면 다양한 언어를 사용하여 표현식 및 서술자를 정의할 수 있습니다.
1.1. RouteBuilder 클래스 구현 링크 복사링크가 클립보드에 복사되었습니다!
1.1.1. 개요 링크 복사링크가 클립보드에 복사되었습니다!
DSL( Domain Specific Language )을 사용하려면 RouteBuilder
클래스를 확장하고 라우팅 규칙을 정의하는 configure()
메서드를 재정의합니다.
필요한 만큼 RouteBuilder
클래스를 정의할 수 있습니다. 각 클래스는 한 번 인스턴스화되며 CamelContext
오브젝트에 등록됩니다. 일반적으로 각 RouteBuilder
오브젝트의 라이프사이클은 라우터를 배포하는 컨테이너에서 자동으로 관리합니다.
1.1.2. RouteBuilder 클래스 링크 복사링크가 클립보드에 복사되었습니다!
라우터 개발자로서 핵심 작업은 RouteBuilder
클래스를 하나 이상 구현하는 것입니다. 다음 두 가지 대체 RouteBuilder
클래스가 있습니다.
-
org.apache.camel.builder.RouteBuilder
Cryostat-ECDHE This is the genericRouteBuilder
base class that is suitable for deploying into any container type.camel-core
아티팩트로 제공됩니다. -
org.apache.camel.spring.SpringRouteBuilder
Cryostat 이 기본 클래스는 Spring 컨테이너에 특별히 조정됩니다. 특히 다음의 Spring 특정 기능에 대한 추가 지원을 제공합니다. Spring 레지스트리에서빈을 조회합니다(JustRef()
Java DSL 명령 사용) 및 트랜잭션(자세한 내용은 트랜잭션 가이드 참조). 이는camel-spring
아티팩트로 제공됩니다.
RouteBuilder
클래스는 라우팅 규칙을 시작하는 데 사용되는 메서드를 정의합니다(예: from()
, intercept()
, exception()
).
1.1.3. RouteBuilder 구현 링크 복사링크가 클립보드에 복사되었습니다!
예 1.1. “RouteBuilder 클래스 구현” 최소 RouteBuilder
구현을 표시합니다. configure()
메서드 본문에는 라우팅 규칙이 포함되어 있으며 각 규칙은 단일 Java 문입니다.
예 1.1. RouteBuilder 클래스 구현
의 규칙 형식 (URL1).to(URL2)
은 디렉토리 src/data
에서 파일을 읽고 디렉터리 target/messages
디렉터리에 전송하도록 라우터에 지시합니다. 옵션 ?noop=true
는 라우터가 src/data
디렉토리에 있는 소스 파일을 유지(삭제하지 않음)하도록 지시합니다.
contextScan
을 Spring 또는 블루프린트와 함께 사용하여 RouteBuilder
클래스를 필터링하면 기본적으로 Apache Camel에서 Singleton 빈을 찾습니다. 그러나 이전 동작을 켜서 새 옵션 includeNonSingletons
로 범위가 지정된 프로토타입을 포함할 수 있습니다.