40장. 엔드 포인트 인터페이스
초록
이 장에서는 Apache Camel 구성 요소를 구현하는 데 중요한 단계인 Endpoint 인터페이스를 구현하는 방법을 설명합니다.
40.1. 끝점 인터페이스
40.1.1. 개요
org.apache.camel.Endpoint 유형의 인스턴스는 엔드포인트 URI를 캡슐화하며 Consumer
,Producer
및 Exchange
오브젝트의 팩토리 역할을 합니다. 끝점을 구현하는 세 가지 방법이 있습니다.
- 이벤트 중심
- 예약된 폴링
- 폴링
이러한 끝점 구현 패턴은 소비자 Cryostat- Cryostat 참조 41.2절. “소비자 인터페이스 구현” 를 구현하기 위한 해당 패턴을 보완합니다.
그림 40.1. “엔드포인트 상속 계층 구조” 엔드포인트
상속 계층 구조를 구성하는 관련 Java 인터페이스 및 클래스를 표시합니다.
그림 40.1. 엔드포인트 상속 계층 구조
40.1.2. 끝점 인터페이스
예 40.1. “엔드 포인트 인터페이스” org.apache.camel.Endpoint 인터페이스의 정의를 보여줍니다.
예 40.1. 엔드 포인트 인터페이스
package org.apache.camel; public interface Endpoint { boolean isSingleton(); String getEndpointUri(); String getEndpointKey(); CamelContext getCamelContext(); void setCamelContext(CamelContext context); void configureProperties(Map options); boolean isLenientProperties(); Exchange createExchange(); Exchange createExchange(ExchangePattern pattern); Exchange createExchange(Exchange exchange); Producer createProducer() throws Exception; Consumer createConsumer(Processor processor) throws Exception; PollingConsumer createPollingConsumer() throws Exception; }
40.1.3. 끝점 방법
Endpoint 인터페이스는 다음 방법을 정의합니다.
-
isSingleton()
Cryostat- Cryostattrue
, 각 URI가 CamelContext 내에서 단일 끝점에 매핑되도록 하려면 true입니다. 이 속성이true
인 경우 경로 내의 동일한 URI에 대한 여러 참조는 항상 단일 끝점 인스턴스를 나타냅니다. 반면 이 속성이false
인 경우 경로 내의 동일한 URI에 대한 여러 참조가 고유한 엔드포인트 인스턴스를 나타냅니다. 경로의 URI를 참조할 때마다 새 엔드포인트 인스턴스가 생성됩니다. -
getEndpointUri()
이 끝점의 엔드포인트 URI를 반환합니다. -
엔드포인트를 등록할 때
org.apache.camel.spi.LifecycleStrategy
에 의해 사용되는getEndpointKey()
Cryostat- CryostatUsed -
getCamelContext()
Cryostat- Cryostat 이 엔드포인트가 속한CamelContext
인스턴스에 대한 참조를 반환합니다. -
setCamelContext()
Cryostat-이 끝점이 속한CamelContext
인스턴스를 설정합니다. -
ConfigureProperties()
Cryostat- CryostatStores 새Consumer
인스턴스를 생성할 때 매개 변수를 삽입하는 데 사용되는 매개변수 맵의 복사본입니다. -
URI에 알 수 없는 매개변수(즉, Endpoint 또는
Consumer
클래스에서 삽입할 수 없는 매개 변수)를 포함하는 것이 허용됨을 나타내는isLenientProperties()
밀리초true
. 일반적으로 이 방법은false
를 반환하도록 구현해야 합니다. 다음과 같은
변형을 사용하여 오버로드된 메서드를 만듭니다
.Recording an overloaded method with the following variants:-
exchange
createExchange()
Cryostat-가 기본 교환 패턴 설정으로 새 교환 인스턴스를 만듭니다. -
exchange
createExchange(ExchangePattern 패턴)
Cryostat-가 지정된 교환 패턴을 사용하여 새 교환 인스턴스를 만듭니다. -
Exchange createExchange(Exchange 교환)
Cryostat- Cryostat는 지정된교환
인수를 이 엔드포인트에 필요한 교환 유형으로 변환합니다. 지정된 교환이 올바른 유형이 아닌 경우 이 방법은 올바른 유형의 새 인스턴스에 복사합니다. 이 메서드의 기본 구현은DefaultEndpoint
클래스에 제공됩니다.
-
exchange
-
createProducer()
Cryostat- CryostatFactory 메서드를 사용하여 새Producer
인스턴스를 생성합니다. -
createConsumer()
Cryostat- CryostatFactory 메서드를 사용하여 새 이벤트 기반 소비자 인스턴스를 생성합니다.프로세서
인수는 경로의 첫 번째 프로세서에 대한 참조입니다. -
새 폴링 소비자 인스턴스를 생성하기 위해
createPollingConsumer()
Cryostat- CryostatFactory 메서드.
40.1.4. 끝점 싱글톤
불필요한 오버헤드를 방지하려면 동일한 URI( CamelContext 포함)가 있는 모든 끝점에 대해 단일 엔드포인트 인스턴스를 생성하는 것이 좋습니다. isSingleton()
을 구현하여 이 조건을 적용하여 true
를 반환할 수 있습니다.
이 컨텍스트에서 동일한 URI 는 문자열 같음을 사용하여 비교할 때 두 URI가 동일하다는 것을 의미합니다. 기본적으로 다른 문자열로 표현되지만 동일한 URI를 두 개 가질 수 있습니다. 이 경우 URI를 동일한 것으로 취급하지 않습니다.