38.2. 구성 요소 구현 방법

38.2.1. 개요

이 섹션에서는 사용자 지정 Apache Camel 구성 요소를 구현하는 데 필요한 단계를 간략하게 설명합니다.

38.2.2. 어떤 인터페이스를 구현해야 합니까?

구성 요소를 구현할 때는 일반적으로 다음 Java 인터페이스를 구현해야 합니다.

  • org.apache.camel.Component
  • org.apache.camel.Endpoint
  • org.apache.camel.Consumer
  • org.apache.camel.Producer

또한 다음 Java 인터페이스를 구현해야 할 수도 있습니다.

  • org.apache.camel.Exchange
  • org.apache.camel.Message

38.2.3. 구현 단계

일반적으로 사용자 지정 구성 요소를 다음과 같이 구현합니다.

  1. 구성 요소 인터페이스 Cryostat - CryostatA 구성 요소 개체가 끝점 팩토리 역할을 합니다. DefaultComponent 클래스를 확장하고 createEndpoint() 메서드를 구현합니다.

    39장. 구성 요소 인터페이스을 참조하십시오.

  2. Endpoint 인터페이스 Cryostat - Cryostat 엔드포인트를 구현하면 특정 URI로 식별되는 리소스가 표시됩니다. 끝점을 구현할 때 수행된 접근 방식은 소비자가 이벤트 중심 패턴, 예약된 폴링 패턴 또는 폴링 패턴을 따르는지 여부에 따라 달라집니다. 이벤트 중심 패턴의 경우 DefaultEndpoint 클래스를 확장하고 다음 메서드를 구현하여 끝점을 구현합니다.

    • createProducer()
    • createConsumer()

      예약된 폴링 패턴의 경우 ScheduledPollEndpoint 클래스를 확장하고 다음 메서드를 구현하여 끝점을 구현합니다.

    • createProducer()
    • createConsumer()

      폴링 패턴의 경우 DefaultPollingEndpoint 클래스를 확장하고 다음 메서드를 구현하여 끝점을 구현합니다.

    • createProducer()
    • createPollConsumer()

      40장. 엔드 포인트 인터페이스을 참조하십시오.

  3. 소비자 인터페이스 구현 (event-driven, scheduled poll, 또는 poll)을 구현해야 하는 패턴에 따라 소비자를 구현하는 데 사용할 수 있는 몇 가지 다른 접근 방법이 있습니다. 소비자 구현은 메시지 교환을 처리하는 데 사용되는 스레드 모델을 결정하는 데에도 매우 중요합니다.

    41.2절. “소비자 인터페이스 구현”을 참조하십시오.

  4. Producer 인터페이스 Cryostat - Cryostat를 구현하여 생산자를 구현한 후 DefaultProducer 클래스를 확장하고 process() 메서드를 구현합니다.

    42장. 생산자 인터페이스을 참조하십시오.

  5. 필요한 경우 교환 또는 메시지 인터페이스 의 기본 구현은 직접 사용할 수 있지만 경우에 따라 이러한 유형을 사용자 지정해야 할 수 있습니다.

    43장. 교환 인터페이스44장. 메시지 인터페이스 을 참조하십시오.

38.2.4. 구성 요소 설치 및 구성

다음 방법 중 하나로 사용자 지정 구성 요소를 설치할 수 있습니다.

  • CamelContext Cryostat- Cryostat- addComponent() 메서드에 구성 요소를 직접 추가하면 구성 요소가 프로그래밍 방식으로 추가됩니다.
  • Spring 구성 Cryostat- Cryostat를 사용하여 구성 요소를 추가합니다. 표준 Spring ans 요소는 구성 요소 인스턴스를 생성합니다. Cryostat의 id 속성은 구성 요소 접두사를 암시적으로 정의합니다. 자세한 내용은 38.3.2절. “구성 요소 구성”의 내용을 참조하십시오.
  • 구성 요소 Cryostat- CryostatAuto-discovery를 자동으로 검색하도록 Apache Camel을 구성하면 필요에 따라 Apache Camel이 구성 요소를 자동으로 로드합니다. 자세한 내용은 38.3.1절. “자동 검색 설정”의 내용을 참조하십시오.